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
题图:这个爬行垫,孩在上玩了有五年。某一天,孩说:彩虹的颜色印反了 :(