首頁 > php教程 > php手册 > 主體

ubuntu下安装 nginx + php + memcached + mariadb

WBOY
發布: 2016-06-06 19:44:07
原創
1156 人瀏覽過

一,apt-get 安装 1,安装nginx sudo apt-get install nginx 所有的配置文件都在/etc/nginx下,虚拟主机配置在/etc/nginx/sites-available下 程序文件在/usr/sbin/nginx 日志放在了/var/log/nginx中 并已经在/etc/init.d/下创建了启动脚本nginx 默认的虚拟主

一,apt-get 安装

1,安装nginx

sudo apt-get install nginx
登入後複製

所有的配置文件都在/etc/nginx下,虚拟主机配置在/etc/nginx/sites-available下 

程序文件在/usr/sbin/nginx 

日志放在了/var/log/nginx中 

并已经在/etc/init.d/下创建了启动脚本nginx 

默认的虚拟主机的目录设置在了/var/www/nginx-default

  启动nginx

sudo /etc/init.d/nginx start
sudo /etc/init.d/nginx reload
登入後複製

 

2,安装php

fpm

sudo apt-get install php5-fpm<br>/etc/init.d/php5-fpm start
登入後複製

or fcgi

sudo apt-get install php5-cli php5-cgi php5-mysql
登入後複製

 

3,安装FastCgi

<span> apt-get install php5-cgi</span>
登入後複製

也可以再安装spawn-fcgi,spawn-fcgi是fastcgi的管理程序,从Lighthttpd独立出来的项目。实际运营中可以使用php-fpm(php的fastcgi php manager). php 5.3.3中自带php-fpm,但我现在的版本是php 5.3.2.

采用spawn-fcgi执行

sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
登入後複製
登入後複製

参数意义:

* -f 指定调用FastCGI的进程的执行程序位置,根据系统上所装的PHP的情况具体设置 
* -a 绑定到地址addr 
* -p 绑定到端口port 
* -s 绑定到unix socket的路径path 
* -C 指定产生的FastCGI的进程数,默认为5(仅用于PHP) 
* -P 指定产生的进程的PID文件路径 
* -u和-g FastCGI使用什么身份(-u 用户 -g 用户组)运行,Ubuntu下可以使用www-data,其他的根据情况配置,如nobody、apache等
登入後複製

重启fcgi

php-cgi: 先杀死进程

sudo killall -HUP php5-cgi
登入後複製

再启动fcgi

4,配置nginx支持php

修改nginx的配置文件:/etc/nginx/sites-available/default 修改主机名:

server_name localhost;
登入後複製

修改index的一行修改为:

index index.php index.html index.htm;
登入後複製

去掉下面部分的注释用于支持 php 脚本:

location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000; #
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /var/www/nginx-default$fastcgi_script_name;
    include /etc/nginx/fastcgi_params;
}
登入後複製

重新启动nginx:

/etc/init.d/nginx stop
/etc/init.d/nginx start
登入後複製

启动fastcgi php:

sudo /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000 -C 5 -u www-data -g www-data -f /usr/bin/php5-cgi -P /var/run/fastcgi-php.pid
登入後複製
登入後複製

6,安装memcached服务端

sudo apt-get install memcached
登入後複製

  启动memcached服务

memcached -d -m 128 -p 11111 -u root
登入後複製

  参数说明:

-p 监听的端口
-l 连接的IP地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位MB。默认64MB
-M 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25-n 最小分配空间,key+value+flags默认是48
-h 显示帮助
登入後複製

  查看服务是否启动

ps aux | grep memcached
登入後複製

  

7,安装memcached php扩展

sudo apt-get install php5-memcached
登入後複製

 安装完成后,需要重启nginx和fcgi,才能使memcached生效。

 参考资料:

http://www.gaojinbo.com/ubuntu12-04-apt-get-install-php5-5%E5%AE%89%E8%A3%85.html

 8 安装mariadb

sudo apt-get install mariadb-<span>server
</span>/etc/init.d/mysql start
登入後複製

 

 

二,源代码编译方式

1,准备编译环境

apt-get install build-essential
登入後複製

2,下载php源码

cd /usr/local/<span>src
wget http:</span>//cn2.php.net/distributions/php-5.5.13<span>.tar.gz
sudo tar </span>-zxvf php-5.5.13<span>.tar.gz
cd php</span>-5.5.13<span>
.</span>/configure --prefix=/etc/php-5.5.13 --without-pear --with-config<span>-file</span>-path=/etc/php-5.5.13/etc/ --enable-shared=yes --with-zlib-dir=/usr/local/lib --with-pcre-dir=/usr/local/lib --enable-zip --enable-mysqlnd --with-libxml-dir=/usr/local/lib --with-iconv-dir=/usr/local/lib --enable-sockets --enable-soap --enable-opcache --enable-embedded-mysqli --with-mysqli --with-mysql --with-mcrypt=/usr/local/lib --enable-mbstring --with-mhash --enable-gd-native-ttf --with-freetype-dir=/usr/local/lib --with-png-dir --with-jpeg-dir=/usr/local/lib --with-gd --enable-fpm --with-fpm-user=www-data --with-fpm-group=www-data --enable-ftp --enable-dba --with-<span>curl
make
make install</span>
登入後複製

 

 初次configure会出现

configure: error: mcrypt.h not found. Please reinstall libmcrypt.
登入後複製

这是由于版权关系,未带mcrypt包,需要先安装:

cd /usr/local/<span>src
wget http:</span>//softlayer.dl.sourceforge.net/sourceforge/mcrypt/libmcrypt-2.5.8<span>.tar.gz
tar </span>-zxvf libmcrypt-2.5.8<span>.tar.gz
cd </span>/usr/local/src/libmcrypt-2.5.8<span>
.</span>/configure --prefix=/usr/<span>local
make
make install</span> 
登入後複製

其他安装过程缺少相关依赖包的处理可参见:http://zgadzaj.com/how-to-install-php-53-and-52-together-on-ubuntu-1204

如果未安装编译环境,会出现:

root@ubuntu:/usr/local/src/libmcrypt-2.5.8<span>#</span><span> ./configure --prefix=/usr/local</span>
checking build system type... x86_64-unknown-linux-<span>gnu
checking host system type... x86_64</span>-unknown-linux-<span>gnu
checking target system type... x86_64</span>-unknown-linux-<span>gnu
checking </span><span>for</span> a BSD-compatible install... /usr/bin/install -<span>c
checking whether build environment is sane... yes
checking </span><span>for</span><span> gawk... no
checking </span><span>for</span><span> mawk... mawk
checking whether make sets </span>$<span>(MAKE)... yes
checking whether to enable maintainer</span>-<span>specific portions of Makefiles... no
checking whether make sets </span>$<span>(MAKE)... (cached) yes
checking </span><span>for</span> g++<span>... no
checking </span><span>for</span> c++<span>... no
checking </span><span>for</span><span> gpp... no
checking </span><span>for</span><span> aCC... no
checking </span><span>for</span><span> CC... no
checking </span><span>for</span><span> cxx... no
checking </span><span>for</span> cc++<span>... no
checking </span><span>for</span><span> cl... no
checking </span><span>for</span><span> FCC... no
checking </span><span>for</span><span> KCC... no
checking </span><span>for</span><span> RCC... no
checking </span><span>for</span><span> xlC_r... no
checking </span><span>for</span><span> xlC... no
checking </span><span>for</span> C++ compiler <span>default</span> output file name... configure: error: C++<span> compiler cannot create executables
See `config.log' </span><span>for</span> more details.
登入後複製

拷贝php.ini文件:

root@ubuntu:/etc/php-5.5.13/etc<span>#</span><span> cp /usr/local/src/php-5.5.13/php.ini-development php.ini</span>
登入後複製

开机自启动php-fpm,运行php-fpm:

/usr/local/src/php-5.5.13为源码路径。

root@ubuntu:/usr/local/src/php-5.5.13/sapi/fpm<span>#</span><span> cp php-fpm /etc/init.d/</span>
root@ubuntu:/etc/php-5.5.13/etc<span>#</span><span> cp php-fpm.conf.default php-fpm.conf</span>
root@ubuntu:/etc/php-5.5.13/etc<span>#</span><span> /etc/init.d/php-fpm </span>
root@ubuntu:/etc/php-5.5.13/etc<span>#</span><span> ps aux|grep fpm</span>
root      3565  0.0  0.0 130124  4980 ?        Ss   16:25   0:00 php-fpm: master <span>process</span> (/etc/php-5.5.13/etc/php-<span>fpm.conf)
www</span>-data  3566  0.0  0.0 130124  4280 ?        S    16:25   0:00 php-<span>fpm: pool www  
www</span>-data  3567  0.0  0.0 130124  4280 ?        S    16:25   0:00 php-<span>fpm: pool www  
root      </span>3569  0.0  0.0  12256   940 pts/2    S+   16:25   0:00 grep --color=auto fpm
登入後複製

停止fpm,直接kill相关进程即可。

 

重新编译php,添加了一个--with-openssl选项,但是总不起作用。最后删除了源码,重新解压编译才起作用。

看来是这个原因:

需要重新安装 php ,然而是源代码包中执行 make clean 后,然后configure ,make, make install, 发现还是和上次编译的一样,参数没有变化。 肯定是没有删除掉原来configure 出的Makefile文件,查资料后,发现不能用make clean 要用 make distclean 才可以删除包括Makefile文件在内的文件。 重新编译,好了。

 

参考资料:

http://asange.blog.51cto.com/7125040/1229976

http://my.oschina.net/ruiorz/blog/280289

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門推薦
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板