Supondo que você tenha o Apache2 instalado e em execução ...
Crie um local para o IC no diretório / opt. (Outro lugar que podemos usar é o / usr / local, mas o Ubuntu gosta de reservar / optar pelo local seguro para o software instalado localmente, então vamos usar isso.)
Torne-se root; faça um diretório; baixar CI. (O switch com wget não é zero; é o capital O.)
sudo su -
mkdir -p /opt/share/php
cd /opt/share/php
wget http://codeigniter.com/download.php -O CodeIgniter_2.0.0.zip
Descompacte o arquivo. Os arquivos foram arquivados de uma máquina Windows, então todos eles têm o bit executável definido. Nós não queremos isso, então nós os mudamos para 0644. A versão do framework de CI irá mudar de tempos em tempos, mas eu só quero me referir a ele como "ci" (e não "CodeIgniter_2.0.0"). Se mudar para CodeIgniter_2.0.1 amanhã, eu posso mudar o link simbólico para apontar para uma nova versão sem editar nenhum outro arquivo ...
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
Vamos adicionar o CI ao PHP include_path. Use um editor de texto diferente do vim, talvez gedit, se você quiser ...
vim /etc/php5/apache2/php.ini
E a parte relevante do php.ini para mudar:
;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;
; UNIX: "/path1:/path2"
include_path = ".:/opt/share/php/ci/system:/usr/share/php"
Salvar. Assumindo que não temos nada que queremos agora em / var / www, remova o que já estiver no diretório / var / www; criar diretórios para logging e caching de CI; e copie o diretório do aplicativo.
cd /var/www
rm -rf *
mkdir public logs cache
cp -rp /opt/share/php/ci/application .
cp /opt/share/php/ci/index.php public/
Vamos definir algumas variáveis de IC. Use um editor de texto diferente do vim, talvez gedit, se você quiser ...
vim public/index.php
E as variáveis relevantes para mudar:
$system_folder = "/opt/share/php/ci/system";
$application_folder = "../application";
Salvar. Agora vamos configurar o Apache, usando seu editor de texto favorito sobre o vim se você quiser:
vim /etc/apache2/sites-enabled/000-default
E como exemplo, o conteúdo do arquivo (altere ServerAdmin e ServerName):
<VirtualHost *:80>
ServerAdmin [email protected]
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?/ [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>
Salvar. Agora vamos fazer o que o CI precisa que façamos para remover "index.php" da URL, enquanto também define "base_url" para o valor do SERVER_NAME.
vim /var/www/application/config/config.php
E a parte relevante desse arquivo:
$config['base_url'] = 'http://' . $_SERVER['SERVER_NAME'] . '/';
$config['index_page'] = '';
Salvar. Agora vamos configurar o ACL, para que as permissões sejam muito legais. Primeiro monte os sistemas de arquivos com a opção acl em / etc / fstab.
vim /etc/fstab
UUID = padrões xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx / ext4, acl 0 1
mount -o remount,acl /
Em seguida, crie um grupo ao qual um usuário possa pertencer para esse fim (seu usuário).
groupadd developers
usermod -a -G developers $username
O usuário precisa efetuar logout e novamente para se tornar um membro do grupo de desenvolvedores. Aqui, vamos permitir que os membros do grupo de desenvolvedores façam o que desejam dentro do diretório público e do aplicativo, enquanto o usuário do Apache pode ler. No entanto, os logs e diretórios de cache são apenas para raiz e apache. (Feito como exemplo).
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
Reinicie o Apache.
service apache2 restart
Instale um IDE. (O Komodo Edit também é um ótimo IDE.) O Netbeans usa o php-doc.
apt-get install netbeans php-doc
Eu tenho problemas com fontes no NetBeans, a menos que eu use o Sun JDK.
apt-get install sun-java6-jdk
exit
Abra o NetBeans. Vá para:
Tools->Plugins->Available Plugins
Encontre o PHP e instale-o. Faça um novo projeto:
File->New Project->PHP with existing sources...
As fontes existentes estão localizadas em / var / www. Use o PHP 5.3.
Se você seguir isso, você verá:
- Um local comum para o IC, para que seja fácil e eficiente criar muitos sites
- Uma maneira fácil de atualizar o IC
- Um local seguro para que o CI sobreviva a um upgrade de distribuição
- Permissões corretas do arquivo de IC
- Corrigir variáveis PATH e CI
- Permissões flexíveis dentro de / var / www
- Configurações de mod_rewrite funcionando corretamente
- Documentação disponível localmente em / user_guide /
- Um bom IDE com conclusão de código - até mesmo o preenchimento de código de CI (não apenas o PHP)