题记:写这篇博客要主是加深自己对安装启动的认识和总结现实算法时的一些验经和训教,如果有错误请指出,万分感谢。
LNMP=Linux+Nginx+Mysql+PHP。
面上绍介它的安装和置配说明。
个整安装程过我们不用采默许安装,而是自义定安装,安装在/home/zhaolincheung/local目录下。
一.Mysql的安装
1.下载安装
解压mysql的源码包mysql-5.1.50.tar.gz,切换到安装目录下,这里安装到当前户用zhaolincheung的local目录下,如下:
./configure --prefix=/home/zhaolinchueng/local/mysql --sysconfdir=/home/zhaolinchueng/local/mysql
--localstatedir=/home/zhaolinchueng/local/mysql/data
--with-unix-socket-path=/home/zhaolinchueng/local/mysql/tmp/mysql.sock
--with-charset=utf8 --with-plugins=innobase --with-client-ldflags=-all-static
--with-mysqld-ldflags=-all-static
sysconfdir示表mysql的置配文件径路,localstatedir示表数据文件径路,socket置配和最后2个属性要主用来升提性能。
如果要用使innodb引擎,记得加上--with-plugins=innobase。
然后行执:
make
makeinstall
2.置配
(1).复制/home/zhaolinchueng/local/mysql/share/mysql/my-medium.cnf到mysql根目录下,更名为my.cnf。
切换到mysql的bin目录下,行运:
./mysql_install_db --basedir=/home/zhaolinchueng/local/mysql --datadir=/home/zhaolinchueng/local/mysql/data
(2).复制/home/zhaolinchueng/local/mysql/libexec/mysqld到mysql的bin目录下,启动mysql务服
/home/zhaolinchueng/local/mysql/bin/mysqld_safe --ledir=/home/zhaolinchueng/local/mysql/bin
--log-error=/home/zhaolinchueng/local/mysql/data/t.err --datadir=/home/zhaolinchueng/local/mysql/data
--socket=/home/zhaolinchueng/local/mysql/tmp/mysql.sock --pid-file=/home/zhaolinchueng/local/mysql/data/mysqld.pid
(3).再用ps令命查看mysql是不是启动,如果不能启动用netstat令命检查3306口端是不是被占用,如果是则修改my.cnf的口端置配。
切换到mysql的bin目录下,行运./mysqladmin -u root password '123' 来修改root登录密码。
修改/home/zhaolinchueng/local/mysql/share/mysql/mysql.server的码代:
pid_file=/home/zhaolinchueng/local/mysql/data/mysqld.pid
停止mysql务服:/home/zhaolinchueng/local/mysql/share/mysql/mysql.server stop
为了便利,可以把启动和停止mysql务服令命写成shell脚本。
提议在my.cnf中添加sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"。
其他考参接链:http://www.jb51.net/article/27768.htm
二.Nginx安装
1. 备准安装包nginx-0.8.53.tar.gz,解压,进入目录
Nginx的下载目录:http://nginx.org/download/
2. 行执
./configure --prefix=/home/zhaolincheung/local/nginx
make && make install
3. 其他置配
这样的话默许的置配文件为/home/zhaolincheung/local/nginx/conf/nginx.conf,行执文件为/home/zhaolincheung/local/nginx/sbin/nginx,
pid文件为/home/zhaolincheung/local/nginx/logs/nginx.pid,因此可以在户用主目录下立建启动文件start.sh和关闭文件stop.sh,便利启动和关闭nginx。
启动文件start.sh内容为:/home/zhaolincheung/local/nginx/sbin/nginx
关闭文件内容为:
pid=`cat/home/zhaolincheung/local/nginx/logs/nginx.pid`
kill $pid
三.php-fpm安装
1.绍介
Php-fpm是一个php fastcgi的程进理管器,是只用于php的。Php-fpm实际上是php-fpm源码代的一个补丁,旨在将fastcgi程进理管整合进php包中,必须将它patch到你的php源码代中。在现php 5.3.3以上版本都整合了php-fpm的分支,不要需在独单安装了。
Php-fpm的利益是:供提了更好的php程进理管方式,可以有效控制内存和程进、可以平滑重载和php置配,所以终最被php官方收录了。在php行进configure时带上--enable-fpm参数可即开启php-fpm。
而Fastcgi是一个可伸缩的,高速地在web server和脚本语言间交互的口接。Fastcgi的要主是把动态语言(如php)和web server分离开来。种这技巧答应把web server和动态语言行运在不同的主机上,以大规模扩展和进改安全性而不失损产生率效。
2.安装
备准好php-5.2.14.tar.gz和php-5.2.14-fpm-0.5.14.diff.gz,解压php-5.2.14.tar.gz。
然后分离行执解压和打补丁令命:
gzip -d php-5.2.14-fpm-0.5.14.diff.gz
patch -d php-5.2.14 -p1 < php-5.2.14-fpm-0.5.14.diff
这样php 5.2.14就支撑fastcgi了。php 5.3.x开始就内置了对fastcgi的支撑,无需补丁,所以如果安装php 5.3.x以上版本,则个整步调二“php-fpm安装”无需行进。
四.PHP安装
安装php要需安装其他赖依:libxml2和libxml2-devel包。如果统系没有安装这些赖依,要需自己安装,可以通过面上的令命:
yum install libxml2
yum install libxml2-devel –y
1.php5.3.3以下版本的安装
./configure --prefix=/home/zhaolincheung/local/php --enable-fastcgi /
--enable-force-cgi-redirect --enable-fpm /
--with-config-file-path=/home/zhaolincheung/local/php/lib --with-mysql=/home/zhaolincheung/local/mysql /
--with-pdo-mysql=/home/zhaolincheung/local/mysql --with-curl=/home/zhaolincheung/local/curl --enable-mbstring
完成后再行执
make&& make install
2.php 5.3.3以上版本的安装
php5.3.3及以上的版本内置了fpm ,此处用5.3.4举例,下载后解压,进入解压后目录 :
./configure --prefix=/home/zhaolinchueng/local/php --enable-fpm /
--with-config-file-path=/home/zhaolinchueng/local/php/lib --with-mysql=/home/zhaolincheung/local/mysql /
--with-pdo-mysql=/home/zhaolincheung/local/mysql --with-curl=/home/zhaolincheung/local/curl --enable-mbstring
然后再行执
make && make install
五.Nginx置配
1.nginx.conf的互联网置配方法
工业界的置配方法如下:
首先打开nginx的安装目录下的nginx.conf,这里为/home/zhaolincheung/local/nginx/conf/nginx.conf,其内容如下:
user www www; worker_processes 16; error_log logs/nginx_error.log crit; pid logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 51200; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 128; client_header_buffer_size 32k; large_client_header_buffers 4 32k; client_max_body_size 8m; sendfile on; tcp_nopush on; keepalive_timeout 60; tcp_nodelay on; fastcgi_connect_timeout 300; fastcgi_send_timeout 300; fastcgi_read_timeout 300; fastcgi_buffer_size 64k; fastcgi_buffers 4 64k; fastcgi_busy_buffers_size 128k; fastcgi_temp_file_write_size 128k; fastcgi_intercept_errors on; fastcgi_hide_header Pragma; gzip on; gzip_min_length 1k; gzip_buffers 4 16k; gzip_http_version 1.0; gzip_comp_level 2; gzip_types text/plain application/x-javascript text/css application/xml; gzip_vary on; autoindex off; server_tokens off; server_name_in_redirect off; ################################################################################## log_format misc '$http_x_forwarded_for $remote_addr $host $server_addr [$time_local] "$request" $request_time' ' $status $body_bytes_sent "$http_referer" ' '"$http_user_agent"'; ################################################################################# include webim_analys_nginx.conf;#通过include包括虚拟主机1的置配文件 include abc_nginx.conf;#通过include包括虚拟主机2的置配文件 }
面上的文件通过include来包括虚拟主机的置配文件,这样就相当于我们启动了一个nginx务服,所以我们要需在/home/zhaolinchueng/local/nginx/conf/目录下新建一个名为webim_analys_nginx.conf的文件,内容如下:
server { listen 80; server_name zhaolincheung.gj.com; index index.html index.htm index.php; root /data/webim/analys; autoindex on; location ~ .*\.(php|php5)?$ { fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; include fcgi.conf; } location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ { expires 30d; } location ~ .*\.(js|css)?$ { expires 1h; } location /(WEB-INF)/ { deny all; } log_format webim_analys_access '$remote_addr $host $server_addr [$time_local] "$request" $request_time' ' $status $body_bytes_sent "$http_referer" ' '"$http_user_agent"' '$request_body' '$content_length'; access_log /data/webim/analys/log/access.log webim_analys_access; }
说明:root示表网页程序的寄存目录,这里为/data/webim/analys。log_format是义定nginx输出日记的格式,其中日记的置位在/data/webim/analys/log/access.log。所以,要需户用立建一个目录log,并在该目录下立建一个access.log文件。
2.启动nginx,查看置配是不是确正
行执/home/zhaolincheung/local/php/sbin/php-fpm ,然后启动nginx,最后在/home/zhaolincheung/local/nginx/html文件夹下立建index.php,
输出phpinfo看看胜利没,index.php内容如下:
<?php
echophpinfo();
?>
六.php置配
1.备准php.ini和php-fpm.conf文件
把php源码解压缩目录下的php.ini-production复制到php的安装目录/home/zhaolincheung/local/php/lib下,并更名php.ini,
在/home/zhaolincheung/local/php/etc/本目录下复制一份php-fpm.conf.default,并命名为php-fpm.conf
2. 打开php-fpm.conf,去掉响应的分号注释,最后如下
pid= run/php-fpm.pid
error_log= log/php-fpm.log
listen= 127.0.0.1:9000
pm =dynamic
pm.max_children= 50
pm.start_servers= 20
pm.min_spare_servers= 5
pm.max_spare_servers= 35
pm.max_requests= 500
3.php.ini的修改
php.ini牵扯到很多php的插件,如对mysql的支撑,对memcached的支撑。
如果修改了php.ini,需只行执php-fpm,不必重启nginx
开辟测试的时候最好是把php.ini的 display_errors 打开,否则nginx遇错直接给出500面页,不会示显错误信息。
七.php-fpm的启动、关闭和重启
Php-fpm是理管php fastcgi的。php 5.3.3以上的版本的php-fpm 不再支撑 php-fpm 前以拥有的 /home/zhaolincheung/local/php/sbin/php-fpm (start|stop|reload)等令命,要需用使信号控制。
1.php 5.3.3以下版本的启动、关闭和重启如下:
启动:/home/zhaolincheung/local/php/sbin/php-fpmstart
关闭:/home/zhaolincheung/local/php/sbin/php-fpmstop
重启:/home/zhaolincheung/local/php/sbin/php-fpmreload
2.php 5.3.3 以上版本的启动、关闭和重启如下:
master程进可以懂得以下信号:
INT,TERM 立刻终止;
QUIT平滑终止;
USR1从新打开日记文件;
USR2平滑重载全部worker程进并从新载入置配和二进制块模。
示例:
Php-fpm启动:/home/zhaolincheung/local/php/sbin/php-fpm
php-fpm关闭:kill -INT `cat /home/zhaolincheung/local/php/var/run/php-fpm.pid`
php-fpm重启:kill -USR2`cat /home/zhaolincheung/local/php/var/run/php-fpm.pid`
注:查看php-fpm程进数:ps aux | grep -c php-fpm
考参接链:http://blog.csdn.net/ldb2741/article/details/6066364
八.php扩展(mysql/pdo/curl等)的独单安装
如果安装php时,没有指定--with-mysql、--with-pdo-mysql、--with-curl这些项选,则默许不会安装对应的mysql、pdo和curl的扩展,要需安装完php后,另行安装,对相来讲会较比费事,提议用采默许安装。
不过,用采默许安装的前提,是这些软件已安装好,即mysql数据库、curl已安装好,这时只要需指定--with-mysql、--with-pdo-mysql、--with-curl这些参数,就现实了安装对应的php扩展。如下所示安装php时,行进指定:
./configure --prefix=/home/zhaolinchueng/local/php --enable-fpm /
--with-config-file-path=/home/zhaolinchueng/local/php/lib --with-mysql=/home/zhaolincheung/local/mysql /
--with-pdo-mysql=/home/zhaolincheung/local/mysql --with-curl=/home/zhaolincheung/local/curl --enable-mbstring
面上举例绍介php扩展的安装方法:
1.Mysql扩展
(1)进入php源码代目录:cd /home/zhaolincheung/php-5.3.1/
(2)再进入php源码代目录下的mysql扩展源码目录:cdext/mysql/
(3)调用已译编好的php里头的phpsize:/home/zhaolincheung/local/php/bin/phpsize
(4)然后configure:./configure –with-php-config=/home/zhaolinchueng/local/php/bin/php-config–with-mysql=/home/zhaolincheung/local/mysql
注:/home/zhaolincheung/local/mysql为mysql的安装目录。
(5)然后make && make install
(6)译编后之,统系主动把mysql.so放到了默许的php扩展目录下(phpinfo可以查看,这里为/home/zhaolincheung/local/php/lib/php/extensions/no-debug-zts-20090626)。此时,要需我们把mysql.so更名为php_mysql.so。然后进入到/home/zhaolincheung/local/php/lib目录下,修改php.ini,去掉;extensions=php_mysql.so后面的分号。
(7)重启nginx和php-fpm。
考参接链:http://hi.baidu.com/zjq_zjq/item/135c60edabc699225b2d6488
文章结束给大家分享下程序员的一些笑话语录:
PC软件体积大,是因为一个PC软件功能往往较多,能够满足你一个方面的需求,而一个iphone软件往往没几行代码,干一件很小的事情,自然需要的软件就多。就像吃西瓜和吃瓜子的来比数目,单位不同啊。