ubuntu(或树莓派)php+nginx的安装和php调用c++程序
1、安装php+nginx
安装php:
sudo apt-get install php5-fpm php5-cgi php5-cli php5-curl php5-gd php5-mcrypt php5-mysql php5-memcache php5-gd php5-sqlite php5-cgi php5-xmlrpc
当时遇到问题是没有软件包,即使更新也不行,后来参考下面这个博客更新了镜像源:
由于php5.6较稳定,装php5.6版本的方法:
ubuntu16.04默认是php 7,要装php 5.x要添加第三方源:
sudo add-apt-repository ppa:ondrej/php
更新包和安装php5.6版本:
sudo apt-get update sudo apt-get install php5.6-fpm 注:【需要额外安装一些extension如:php5.6-gd php5.6-mbstring php5.6-mysql php5.6-zip php5.6-xml php5.6-mcrypt】 具体情况视需求来增加~
参考:
http://blog.163.com/don_t9xu/blog/static/13290945320166610102/
重启fpm
sudo service php5.6-fpm restart
安装nginx:
sudo apt-get install nginx
2、修改站点配置文件:
sudo gedit /etc/nginx/sites-available/default
修改为以下内容:
server
{ listen 80; server_name raspiweb.dyndns.org; root /var/www/; access_log /var/log/nginx/localhost.access.log; #error_page 404 /404.html; if (!-e $request_filename) { rewrite ^(.*)$ /index.php$1 last; } location / { index index.html index.htm index.php default.html default.htm default.php; } location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ { access_log off; expires 1d; } location ~ .*\.php(\/.*)*$ { fastcgi_split_path_info ^(.+\.php)(/.+)$; fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include /etc/nginx/fastcgi_params;
}
}
需要说明的是,站点目录为/var/www/,重点关注这一句:
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
然后注意一定要重启nginx使得它生效
sudo service nginx restart
php调用c++的demo:
http://www.cnblogs.com/freeweb/p/5645699.html
注意php调用c++的demo中的test可执行文件,html文件,php文件需要放在上面的root指定的路径中,即/var/www/;
并且也不能直接打开html文件,需要在浏览器中输入localhost/form.html就可以了
前后端连接的时候出现了504这种error的解决办法:
要么是端口的问题,用netstat -tunlp查一下被占用的端口,然后kill -9 对应pid,或者将nginx和fpm重启一下就可以了