③拳两脚▼ 2015▼ php apache2 thinkphp ubuntu

038.Ubuntu14.04 ThinkPHP (Apache2 Mysql)

本地 apache,php环境,远程mysql,设置thinkphp开发环境。
不使用现成的LAMP或XAMPP,是因为不够精简,又缺少折腾的感觉。

@史荣久 / 2015-04-20 / CC-BY-SA-3.0

系统环境

$ uname -a
Linux moilon-trydofor 3.13.0-49-generic 
83-Ubuntu SMP Fri Apr 10 20:11:33 UTC 2015 
x86_64 x86_64 x86_64 GNU/Linux
$ cat /etc/issue
Ubuntu 14.04.2 LTS \n \l

安装步骤

# 本地 apache,php环境,远程mysql(不需要本地安装)

# 安装 apache2
sudo apt-get install apache2
# apache2            2.4.7-1ubuntu4

# 安装 php5,mod-php
sudo apt-get install php5 libapache2-mod-php5
# php5               5.5.9+dfsg-1ub
# libapache2-mod-php 5.5.9+dfsg-1ub

# 安装 程序依赖
sudo apt-get install php5-mysql php5-gd php5-curl
# php5-mysql         5.5.9+dfsg-1ub
# php5-gd            5.5.9+dfsg-1ub
# php5-curl          5.5.9+dfsg-1ub

环境设置

#验证 apache2 和 php5 安装正确。

sudo service apache2 start
# 启动 http服务,访问(http://127.0.0.1)成功即可

sudo chmod 777 /var/www/html
cat >> /var/www/html/php.php<< EOF
<?php
phpinfo();
EOF
# 修改权限,打印 phpinfo
# 访问(http://127.0.0.1/php.php)成功即可

# 设置虚拟主机和目录权限,否则报告
sudo tee  /etc/apache2/sites-available/001-anwee.conf << EOF
<VirtualHost *:80>
    DocumentRoot /home/trydofor/workspace/HttpdRoot
    DirectoryIndex index.php index.html index.htm
    ErrorLog  /home/trydofor/workspace/HttpdRoot/log/error.log
    CustomLog /home/trydofor/workspace/HttpdRoot/log/access.log combined
    <Directory /home/trydofor/workspace/HttpdRoot>
        Options All
        AllowOverride All
        Require all granted
    </Directory>  
</VirtualHost>
EOF

# 激活虚拟主机,删除默认主机
cd /etc/apache2/sites-enabled
sudo rm -rf 000-default.conf
sudo ln -s ../sites-available/001-anwee.conf  ./

# 设置 thinkphp 运行目录(替换成自己对应的目录)
# 假设 开发环境为 /home/trydofor/workspace/anwee/dev
mkdir -p /home/trydofor/workspace/HttpdRoot
cd /home/trydofor/workspace/HttpdRoot

# 建立 thinkphp 运行目录,并设置可写权限(最大777省事)
mkdir -p {attached,htmls,Runtime,log}
chmod 777 {attached,htmls,Runtime,log}

# 软连接所有文件和目录,和写有转发规则的.htaccess文件
# dev目录有.svn信息,软连接可以保证即时反映又避免提交错文件。

ln -s ../anwee/dev/* ./
ln -s ../anwee/dev/.htaccess ./

# 激活 apache rewrite 模块 
sudo a2enmod rewrite

sudo service apache2 restart

# 禁止自动启动,随用随启
sudo update-rc.d apache2 disable

过程回顾

折腾的过程,有些小插曲的,这也是折腾的乐趣所在。
1) 目录访问权限Require all granted
否则,403 Forbidden
2) rewrite模块要手动激活a2enmod rewrite
否则,.htaccess的设置无效。
3) 知识点:tee <<EOF,ln -s,update-rd.d

添加mcrypt

代码中使用了,判断其存在就用,不存在不用。
导致问题是,不报错,但是功能不好用 :(

安装 sudo apt-get install php5-mcrypt
然后,执行 php5enmod mcrypt激活,
再重启apache。

也可以使用 ln -s 自己搞

sudo ln -s /etc/php5/mods-available/mcrypt.ini \
    /etc/php5/cli/conf.d/20-mcrypt.ini
sudo ln -s /etc/php5/mods-available/mcrypt.ini \
    /etc/php5/apache2/conf.d/20-mcrypt.ini
《038.Ubuntu14.04 ThinkPHP (Apache2 Mysql)》 本地 apache,php环境,远程mysql,设置thinkphp开发环境。不使用现成的LAMP或XAMPP,是因为不够精简,又缺少折腾的感觉。
题图:这个爬行垫,孩在上玩了有五年。某一天,孩说:彩虹的颜色印反了 :(