我目前正在为瑞士的社交项目创建一个网站.
在用户溢出之前,我想准备应用程序以进行扩展.
我自己回答了许多问题,但有些问题仍未解决.
我解释一下我想做什么.
第一
在开始时,应用程序将只有一个服务器(短时间)与DNS,PHP,Mysql,数据和内存缓存.
第二
然后我将它们分成两部分
第三
这是问题所在,我不知道如何在这里完成它以保持应用程序运行良好.
我可以 :
这将是方案,所有PHP会话都保存在DB中.
但是,我如何同步数据?运行Rsync以使其保持最新状态.将它们放在单独的磁盘(网络磁盘)上以确定吗?但在这种情况下,如果用户上传,我该怎么办?
如果网站获得更多成功并且我们必须继续进行更多结构,那么它会不会在更新上产生一些延迟?
或者直接访问亚马逊的网络服务会是一件好事吗?
一些信息 我使用codeigniter作为框架.我使用linux作为webserver(现在没有选择发布,但应该是Debian)
提前感谢您的回答.
CodeIgniter是否支持Namespace?
我在CodeIgniter中做了一个项目.它在我的localhost上工作正常,但在远程服务器上给出了"500 Internal Server Error".这是我的.htaccess文件内容:
RewriteEngine On
RewriteBase /ezgov
RewriteCond %{REQUEST_URI} ^system.*
RewriteRule ^(.*)$ /index.php/$1 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud) 在我的CodeIgniter项目中,我在项目创建期间上传文件.这是上传功能:
function uploadFiles(){
$this->load->library('upload');
$error = 0;
$projectName = $_POST['projectname'];
mkdir('./uploads/'.$projectName);
for($i=0; $i<count($_FILES); $i++)
{
$_FILES['userfile']['name'] = $_FILES['files']['name'][$i];
$_FILES['userfile']['type'] = $_FILES['files']['type'][$i];
$_FILES['userfile']['tmp_name'] = $_FILES['files']['tmp_name'][$i];
$_FILES['userfile']['error'] = $_FILES['files']['error'][$i];
$_FILES['userfile']['size'] = $_FILES['files']['size'][$i];
$config['upload_path'] = './uploads/'.$projectName;
$config['allowed_types'] = 'xml|etl';
$config['max_size'] = '0';
$config['overwrite'] = TRUE;
$this->upload->initialize($config);
if($this->upload->do_upload())
{
$error += 0;
}else{
$error += 1;
}
}
if($error > 0){ return FALSE; }else{ return TRUE; }
}
Run Code Online (Sandbox Code Playgroud)
我在create_project函数中调用此函数,如下所示:
public function create_project() {
$this->load->library('form_validation');
$this->form_validation->set_rules('projectname', 'Project name', 'required');
$this->form_validation->set_message('required', 'This is an obligatory field'); …Run Code Online (Sandbox Code Playgroud) 我想要以下功能来选择一个$minvalue和某个住宿之间的住宿$maxvalue.最好的方法是什么?
function gethotels($state_id,$city,$accommodation,$minvalue,$maxvalue,$limit,$pgoffset)
{
$this->db->limit($limit, $pgoffset);
$this->db->order_by("id", "desc");
$this->db->where('state_id',$state_id);
$this->db->where('city',$city);
// This one should become a between selector
$this->db->where($accommodation,$minvalue);
$result_hotels = $this->db->get('hotels');
return $result_hotels->result();
}
Run Code Online (Sandbox Code Playgroud) 我是Codeigniter和OOP PHP的新手.
控制器:
public function index(){
$this->load->model('main_model');
$planet = $this->main_model->solar();
$this->load->view('main_view', $planet);
}
Run Code Online (Sandbox Code Playgroud)
如果echo $planet在控制器中它执行它应该做的事情.如果我echo $planet在视图中得到一个未定义的变量错误. $planet不是数组.为什么不将$planet变量传递给视图?
我知道这是一个简单而基本的问题,我很尴尬,我无法弄清楚我做错了什么.
编辑:好的,经过更多的摆弄,我得到了它的工作.变量只有在格式化为数组时才能从Controller传递到View?
我正在努力使用CodeIgniter中的Flash Data.
我基本上想要:
将类别添加到数据库重定向用户返回到页面显示成功弹出消息"您的类别已创建"
到目前为止,我可以成功地将类别添加到数据库并正确验证用户输入,唯一的事情是我不知道如何创建弹出成功消息.(我不想加载成功视图),只需重定向回到他们来自的地方,并在顶角或其他地方显示小消息.
闪存数据是正确的方法吗?
在部署codeigniter/laravel应用程序时,我需要知道哪些是我的选择.
我一直在家里开发本地,当我去上班时,我需要一些快速的方法将所有更改推送到服务器.
需要更新应用程序代码,需要迁移数据库模式,并且必须重新启动应用程序服务器.
我手动浪费了大量的时间,我需要一些自动化的方式,比如在Rails环境中的capistrano.
我有什么选择?
更新: 我有自己的服务器机器,一切都需要在没有互联网连接的内部网环境中工作.
我已按照官方codeigniter网站上提供的确切指南来运行CLI(命令行界面)工具.https://www.codeigniter.com/userguide2/general/cli.html
我的控制器是......
<?php
class Tools extends CI_Controller {
public function message($to = 'World')
{
echo "Hello {$to}!".PHP_EOL;
}
} ?>
Run Code Online (Sandbox Code Playgroud)
当我从我的CMD运行以下命令时,我在命令行窗口中得到以下输出(和错误):
php index.php tools message
<h4>A PHP Error was encountered.</h4>
<p>Severity: Notice</p>
<p>Message: Undefined index: REMOTE_ADDR</p>
<p>Filename: core/Input.php</p>
<p>Line Number: 351</p>
.....
<h4>A PHP Error was encountered</h4>
<p>Message: Cannot modify header information - headers already sent by (output at C:{systempath}\system\2.1.4\core\Exceptions.php:185)</p>
<p>Filename: libraries/Session.php</p>
<p>Line Number: 675</p>
</div>Hello World!
Run Code Online (Sandbox Code Playgroud)
任何人都可以解释为什么我会遇到这个问题?我也按照官方的Codeigniter CLI教程来学习本教程 - 任何想法?我正在使用CodeIgniter 2.1.4和XAMPP(Windows).
php command-line codeigniter command-line-interface codeigniter-2
点#1 如果我键入:
www.myurl.com/somepage
http://www.myurl.com/somepage
http://myurl.com/somepage
https://myurl.com/somepage
Run Code Online (Sandbox Code Playgroud)
让它重定向到
https://www.myurl.com/somepage
Run Code Online (Sandbox Code Playgroud)
第2点
When I type in something like www.myurl.com it is redirecting to https://www.myurl.com/index.php.
Make it so the index.php is not displaying. It should just display https://www.myurl.com
Run Code Online (Sandbox Code Playgroud)
来自评论htaccess
RewriteEngine On
RewriteCond %{HTTP_HOST} ^myhost\.com$ [NC]
RewriteRule ^(.*)$ myhost.com/$1 [R=301,L]
RewriteCond %{THE_REQUEST} ^[A-Z]+\ /index\.php(/[^\ ]*)?\ HTTP/
RewriteRule ^index\.php(/(.*))?$ myhost.com/$2 [R=301,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
Run Code Online (Sandbox Code Playgroud) codeigniter ×10
php ×10
.htaccess ×2
apache ×1
command-line ×1
file-upload ×1
laravel ×1
mod-rewrite ×1
namespaces ×1
oop ×1
post ×1
scalability ×1
session ×1