我正在运行MacPro G5 w / 10.5.8。我跑了: sudo port selfupdate然后运行: sudo端口升级过时了 当它全部完成后,我重新启动,apache2被破坏,不再提供PHP文件。如果我替换httpd.conf文件,它将提供html文件。 我终于放弃并恢复了备份,机器再次运行。问题是我有第二台机器,我做了同样的事情,并不想经历相同的过程。我已经阅读了几篇关于卸载/重新安装像Kirk Roybal How to do a clean reinstall with macports?这样的Macport的帖子,但它没有说明这个过程是否会破坏或重置/ opt / local /目录的内容。特别是MySQL DB和htdocs的内容。有谁知道这个过程是联系还是破坏性的?当然,在尝试任何事情之前,我会备份所有内容。
解: 我通过使php53安装工作而不是向后工作来实现它。这就是我的所作所为:
sudo port select --set php php53 (将MacPorts设置为使用php53而不是php5)
安装了sudo端口(检查以确保安装了php53-apache2handler)
sudo port install php53-apache2handler (它不是,你的可能也不是)
完成安装后
php -v (查看正在运行的PHP版本)
cd / opt / local / apache2 / modules
sudo / opt / local / apache2 / bin / apxs -a -e -n php mod_php53.so (在apache中激活php)
这应该追加
LoadModule php5_module modules / mod_php53.so
到您的/opt/local/apache2/conf/httpd.conf文件(立即查看)
还会有这样的一行
LoadModule php5_module modules / mod_php5.so
将其注释或删除,因此不会干扰新安装
它还应该将mod_php53.so的副本移动到
的/ opt /本地/ apache2的/模块
如果不存在,请参阅上面的php53-apache2handler安装。
检查httpd.conf文件是否有错误
/ opt / local / apache2 / bin / httpd -S
最后,创建/编辑php.ini文件,告诉apache2如何连接MySQL数据库
cd / opt / local / etc / php53
sudo cp php.ini-production php.ini (用于开发机器的生产机器使用开发)
sudo cp php.ini php.ini.bak
将默认套接字路径添加到php.ini
pdo_mysql.default_socket = / opt / local / var / run / mysql5 / mysqld.sock (可能因MySQL版本而异。如果不确定,请查看/ opt / local / var / run目录)
mysql.default_socket = /选择/本地的/ var /运行/ MYSQL5 / mysqld.sock
mysqli.default_socket = /选择/本地的/ var /运行/ MYSQL5 / mysqld.sock
如果您在连接MySQL时遇到问题,请首先检查以上路径中的拼写错误。相信我它会为你节省大量时间! 如果一切按计划进行,您应该能够重新启动机器,进行测试以确保所有端口自动启动并且事情应该正常工作。
答案 0 :(得分:0)
您添加的文件(例如:MySQL DB)不会被更新破坏。如果您修改由MacPorts管理的文件(例如:它们列在'端口内容'中),那么这些修改将被更新破坏。
某些项目会将配置文件作为示例进行安装,并让用户制作真正的配置文件,以免通过更新来破坏它。看起来apache2端口遵循这种模式。它安装/opt/local/apache2/conf/original/httpd.conf,然后仅在文件不存在时才将其复制到/opt/local/apache2/conf/httpd.conf的实际位置。