我在 Apache (2.2.17) 服务器上运行 PHP (5.3.3) 作为 Apache 模块。
PHP 5.3.5 已经编译好了,我可以直接运行make install
安装新的 PHP 库吗?还是应该在执行此操作之前停止服务器?我想避免后者(停止服务器),因为还有很多对静态内容(不是 PHP)的请求。
在发表评论之前,我很确定升级不会破坏任何 PHP 脚本。
答案1
不可以,在现有的正在运行的安装上安装 PHP(模块)并不安全。这可能会使您的 Web 服务器处于不稳定状态。在覆盖现有的 PHP 安装之前,应先停止 Web 服务器。
在 Web 服务器运行时升级 PHP 的说明
如果您的网站同时提供静态内容和 PHP 内容,请考虑删除下一行httpd.conf
以禁用 PHP:
LoadModule php5_module modules/libphp5.so
如果未加载 php5_module,则拒绝访问扩展名为“.php”的文件(每次安装时都应存在该文件以防止源暴露):
<IfModule !php5_module>
<FilesMatch "\.(php|phtml)$">
Order allow,deny
Deny from all
</FilesMatch>
</IfModule>
然后重新加载你的 Apache 配置:
# /usr/local/apache2/bin/apachectl graceful
从源目录安装 PHP:
# make install
此命令也应该将一个添加LoadModule php5_module modules/libphp5.so
到文件中httpd.conf
,检查它是否已添加不会有任何损害。
最后重新加载配置以再次启用 PHP 支持:
# /usr/local/apache2/bin/apachectl graceful
答案2
然后继续重新启动服务器就好了make install
,我自己以前也这样做过。
为了安全起见,请务必对以前的 php 库执行 tar,以防升级不顺利!;)