如何安装 CodeIgniter?

Red*_*ing 2 10.10 apache2

请给我一个关于如何在 Ubuntu 上安装 CodeIgniter 的分步过程。我还是个新手。谢谢!

小智 6

假设您已安装并运行 Apache2...

在 /opt 目录中为 CI 创建一个 home。(我们可以使用的另一个地方是 /usr/local,但 Ubuntu 喜欢保留 /opt 作为本地安装软件的安全位置,所以让我们使用它。)

成为根;制作目录;下载 CI。(带有 wget 的开关不是零;它是大写的 O。)

sudo su -
mkdir -p /opt/share/php
cd /opt/share/php
wget http://codeigniter.com/download.php -O CodeIgniter_2.0.0.zip
Run Code Online (Sandbox Code Playgroud)

解压缩存档。这些文件是从 Windows 机器归档的,因此它们都设置了可执行位。我们不希望那样,所以我们把它们改成 0644。CI 框架版本会不时变化,但我只想将其称为“ci”(而不是“CodeIgniter_2.0.0”)。如果明天更改为 CodeIgniter_2.0.1,我可以更改符号链接以指向新版本,而无需编辑任何其他文件...

unzip CodeIgniter_2.0.0.zip && rm CodeIgniter_2.0.0.zip
find /opt/share/php -type f -exec chmod 0644 {} \;
ln -s CodeIgniter_2.0.0 ci
Run Code Online (Sandbox Code Playgroud)

让我们将 CI 添加到 PHP include_path。使用与 vim 不同的文本编辑器,也许是 gedit,如果你喜欢......

vim /etc/php5/apache2/php.ini
Run Code Online (Sandbox Code Playgroud)

并更改 php.ini 的相关部分:

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

; UNIX: "/path1:/path2"
include_path = ".:/opt/share/php/ci/system:/usr/share/php"
Run Code Online (Sandbox Code Playgroud)

节省。假设我们现在在 /var/www 中没有我们想要的东西,删除 /var/www 目录中已有的东西;为 CI 日志记录和缓存创建目录;然后,复制应用程序目录。

cd /var/www
rm -rf *
mkdir public logs cache
cp -rp /opt/share/php/ci/application .
cp /opt/share/php/ci/index.php public/
Run Code Online (Sandbox Code Playgroud)

让我们设置一些 CI 变量。使用与 vim 不同的文本编辑器,也许是 gedit,如果你喜欢......

vim public/index.php
Run Code Online (Sandbox Code Playgroud)

以及要更改的相关变量:

$system_folder = "/opt/share/php/ci/system";
$application_folder = "../application";
Run Code Online (Sandbox Code Playgroud)

节省。现在让我们设置 Apache,如果您愿意,可以在 vim 上使用您最喜欢的文本编辑器:

vim /etc/apache2/sites-enabled/000-default
Run Code Online (Sandbox Code Playgroud)

例如,文件内容(更改 ServerAdmin 和 ServerName):

<VirtualHost *:80>
    ServerAdmin your@email.com
    ServerName www.hostname.com
    DocumentRoot /var/www/public
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn 
    CustomLog ${APACHE_LOG_DIR}/access.log combined

    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>

    <Directory /var/www/public/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        <IfModule mod_rewrite.c>
            RewriteEngine On
            RewriteBase /
            RewriteCond %{REQUEST_FILENAME} !-f
            RewriteCond %{REQUEST_FILENAME} !-d
            RewriteRule ^(.*)$ index.php?/$1 [L]
        </IfModule>
        Order allow,deny
        allow from all
    </Directory>

    Alias /user_guide/ "/opt/share/php/ci/user_guide/"
    <Directory "/opt/share/php/ci/user_guide/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
        Allow from 192.168.0.0/255.0.0.0 ::1/128
        Allow from 10.0.0.0/255.0.0.0 ::1/128
    </Directory>
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

节省。现在让我们做 CI 需要我们做的事情,以便从 URL 中删除“index.php”,同时将“base_url”定义为 SERVER_NAME 的值。

vim /var/www/application/config/config.php
Run Code Online (Sandbox Code Playgroud)

以及该文件的相关部分:

$config['base_url'] = 'http://' . $_SERVER['SERVER_NAME'] . '/';
$config['index_page'] = '';
Run Code Online (Sandbox Code Playgroud)

节省。现在让我们设置ACL,这样权限就很好了。首先使用 /etc/fstab 中的 acl 选项挂载文件系统。

vim /etc/fstab
Run Code Online (Sandbox Code Playgroud)

UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4 默认值,acl 0 1

mount -o remount,acl /
Run Code Online (Sandbox Code Playgroud)

然后为此目的创建一个用户可能所属的组(您的用户)。

groupadd developers
usermod -a -G developers $username
Run Code Online (Sandbox Code Playgroud)

用户需要注销并再次登录才能成为开发者组的成员。在这里,我们将让开发者组的成员在 public 和 application 目录中做他们想做的事情,而 Apache 用户可以阅读。但是,日志和缓存目录仅适用于 root 和 apache。(作为示例完成。)

chown -R root.developers /var/www/public
chmod 0775 /var/www/public
chmod g+s /var/www/public
setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/public
chown -R root.developers /var/www/application
chmod 0775 /var/www/application
chmod g+s /var/www/application
setfacl -d -m u::rwx,g::rwx,o::r-x /var/www/application
find /var/www/application -type d -exec setfacl -d -m u::rwx,g::rwx,o::r-x {} \;
find /var/www/application -type f -exec setfacl -m u::rw-,g::rw-,o::r-- {} \;
chgrp www-data /var/www/logs
chgrp www-data /var/www/cache
chmod 0770 /var/www/logs
chmod 0770 /var/www/cache
Run Code Online (Sandbox Code Playgroud)

重新启动阿帕奇。

service apache2 restart
Run Code Online (Sandbox Code Playgroud)

安装 IDE。(Komodo Edit 也是一个非常好的 IDE。) Netbeans 使用 php-doc。

apt-get install netbeans php-doc
Run Code Online (Sandbox Code Playgroud)

除非我使用 Sun JDK,否则我在 NetBeans 中遇到字体问题。

apt-get install sun-java6-jdk
exit
Run Code Online (Sandbox Code Playgroud)

打开 NetBeans。去:

Tools->Plugins->Available Plugins
Run Code Online (Sandbox Code Playgroud)

找到PHP并安装它。新建一个项目:

File->New Project->PHP with existing sources...
Run Code Online (Sandbox Code Playgroud)

现有源位于 /var/www。使用 PHP 5.3。

如果你遵循这个,你会得到:

  • CI 的公共位置,因此可以轻松高效地构建多个站点
  • 升级 CI 的简单方法
  • CI 在发行版升级中幸存下来的安全场所
  • 正确的 CI 文件权限
  • 正确的 PATH 和 CI 变量
  • /var/www 中的灵活权限
  • 正确运行 mod_rewrite 设置
  • 本地文档位于 /user_guide/
  • 带有代码完成功能的不错 IDE - 甚至是 CI 代码完成功能(不仅仅是 PHP)