隨著web應用的盛行和人們對于效率的不斷提升,前后端分離得以深入發展。然而,很多網站必須要運行PHP代碼,以實現其功能和數據處理。
伴隨著Node.js的興起,可以借助Node.js運行PHP代碼,使用php-cgi模塊,并且還可以同時執行多個PHP文件,提高處理效率。
為了演示Node.js如何運行PHP代碼,我們可以使用以下三種開源解決方案中的任一一種:
1. php-cgi:
a. 安裝php-cgi
sudo apt-get install php-cgi
b. 安裝fastcgi
sudo apt-get install libapache2-mod-fastcgi
c. 創建新的Apache配置文件
cd /etc/apache2/sites-available/
sudo nano example.conf
內容:
<VirtualHost *:80>
DocumentRoot /var/www/html/index.php
DirectoryIndex index.php
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
AddHandler php-cgi .php
Action php-cgi /cgi-bin/php-cgi
</Directory>
</VirtualHost>
d. 修改php.ini文件
cd /etc/php/7.0/cgi/
sudo nano php.ini
修改以下參數:
cgi.fix_pathinfo=0
register_argc_argv=1
cgi.force_redirect=0
e. 重啟Apache
sudo service apache2 restart
2. php-fpm:
a. 安裝php-fpm
sudo apt-get install php-fpm
b. 啟動php-fpm
sudo service php-fpm start
c. 創建新的Apache配置文件
cd /etc/apache2/sites-available/
sudo nano example.conf
內容:
<VirtualHost *:80>
DocumentRoot /var/www/html/index.php
DirectoryIndex index.php
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Require all granted
<FilesMatch \.php$>
SetHandler "proxy:fcgi://127.0.0.1:9000"
</FilesMatch>
</Directory>
</VirtualHost>
e. 修改php.ini文件
cd /etc/php/7.0/fpm/
sudo nano php.ini
修改以下參數:
cgi.fix_pathinfo=0
register_argc_argv=1
3. php-node:
a. 安裝php-node
sudo npm install php
b. 運行以下PHP文件:
var php = require('php');
var result = php('echo "Hello World";');
console.log(result);
總結一下,運行PHP代碼時,我們可以借助很多解決方案,如php-cgi、php-fpm和php-node,使我們在為Web應用開發提供更大的靈活性和效率。