1、千万不要把/etc/apache2/httpd.conf用httpd.conf-bak给覆盖了,如果万一覆盖了用
/etc/apache2/original下的httpd.conf还原恢复一下,要不你连it works!都看不到了
2、升级yosemite 后修复
cd /private/etc/
sudo cp php.ini.default php.ini
sudo vi php.ini
把php.ini里面所有的default_socket都改成/tmp的mysql.sock的正确位置即可。
因为mysql的默认目录是/tmp/mysql.sock.,命令如下:
方法1:echo "show variables" | mysql | grep "socket"
方法2:echo "status" | mysql | grep "socket"
pdo_mysql.default_socket=/tmp/mysql.sock
mysql.default_socket = /tmp/mysql.sock
mysqli.default_socket=/tmp/mysql.sock
修复 Apache
Apache 好像是换新版本了,升级完系统之后项目打不开了。之前设置好的虚拟主机都无效了。
首先打开sudo vim /etc/apache2/httpd.conf这个文件,
1. 开启虚拟主机功能,去掉下面代码的「#」注释:
| #Include /private/etc/apache2/extra/httpd-vhosts.conf |
改过的代码如下:
| Include /private/etc/apache2/extra/httpd-vhosts.conf |
2. 如果想开启伪静态,去掉下面代码的「#」注释:
| #LoadModule rewrite_module libexec/apache2/mod_rewrite.so |
改过的代码如下:
| LoadModule rewrite_module libexec/apache2/mod_rewrite.so |
3. 如果想使用系统自带的 PHP 版本的话,去掉下面代码的「#」注释:
| #LoadModule php5_module libexec/apache2/libphp5.so |
改过的代码如下:
| LoadModule php5_module libexec/apache2/libphp5.so |
以上操作完了之后记得要重启Apache:
| sudo apachectl restart
修复虚拟主机 现在我们虽然能用虚拟主机了,但是好像不能解析 PHP 了,打开/private/etc/apache2/extra/httpd-vhosts.conf 文件在每一个配置里面添加一行下面的代码就可以了,局域网访问,多域名访问: Require all granted 示例如下:
1 2 3 4 5 | Options Indexes MultiViews FollowSymLinks AllowOverride All Require all granted | 记得要重启 Apache:
1 | sudo apachectl restart
安装 PHP Mcrypt 扩展 这个花费我很长时间,主要是我本来还想用 brew 安装的,省事,但是还是没效果,最后没办法还是编译安装了。
1 2 3 4 5 6 7 8 | cd ~/Downloads wget https://github.com/php/php-src/archive/PHP-5.5.14.zip unzip PHP-5.5.14.zip cd php-src-PHP-5.5.14/ext/mcrypt/ /usr/bin/phpize ./configure make sudo make install | 然后拷贝一份 php.ini 配置文件,重装系统这个文件没了:
1 | sudo cp /etc/php.ini.default /etc/php.ini | 然后记得在 php.ini 文件里面添加这个扩展,如下面代码: extension = mcrypt.so 以上操作完之后你的 PHP 环境应该又回来了。:) | |