和LAMP不同的是LNMP中的N指的是是Nginx(类似于Apache的一种web服务软件)其他都一样。目前这种环境应用的也是非常之多。Nginx设计的初衷是提供一种快速高效多并发的web服务软件。在静态页面的处理上Nginx的确胜Apache一筹,然而在动态页面的处理上Nginx并不比Apache有多少优势。但是,目前还是有很多爱好者对Nginx比较热衷,随着Nginx的技术逐渐成熟,它在web服务软件领域的地位越来越高。 【MySQL安装】 1. 下载mysql到/usr/local/src/ cd /usr/local/src/ wget http://syslab./downloads/linux/mysql-5.0.86-linux-i686-icc-glibc23.tar.gz 2. 解压 tar zxvf /usr/local/src/ mysql-5.0.86-linux-i686-icc-glibc23.tar.gz 3. 把解压完的数据移动到/usr/local/mysql mv mysql-5.0.86-linux-i686-ii-glibc23 /usr/local/mysql 4. 建立mysql用户 useradd mysql 5. 初始化数据库 cd /usr/local/mysql mkdir /data/mysql ; chown -R mysql:mysql /data/mysql ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql --user定义数据库的所属主,--datadir定义数据库安装到哪里,建议放到大空间的分区上,这个目录需要自行创建。 6. 拷贝配置文件 cp support-files/my-large.cnf /etc/my.cnf 7. 拷贝启动脚本文件并修改其属性 cp support-files/mysql.server /etc/init.d/mysqld chmod 755 /etc/init.d/mysqld 8. 修改启动脚本 vim /etc/init.d/mysqld 需要修改的地方有datadir=/data/mysql(前面初始化数据库时定义的目录) 9. 把启动脚本加入系统服务项,并设定开机启动,启动mysql chkconfig --add mysqld chkconfig mysqld on service mysqld start 如果启动不了,请到/data/mysql/ 下查看错误日志,该日志格式为主机名.err。 【php的安装】 这里要先声明一下,针对Nginx的php安装和针对apache的php安装是有区别的,因为Nginx中的php是以fastcgi的方式结合nginx的,可以理解为nginx代理了php的fastcgi,而apache是把php作为自己的模块来调用的。 useradd www cd /usr/local/src/ wget http://syslab./downloads/linux/php-5.2.10.tar.gz wget http://syslab./downloads/linux/php-5.2.10-fpm-0.5.13.diff.gz 下载的第二个包php-5.2.10-fpm-0.5.13.diff.gz是用来给php打补丁的,默认情况下,php是无法编译出fastcgi的。 tar zxvf php-5.2.10.tar.gz gzip -cd php-5.2.10-fpm-0.5.13.diff.gz | patch -d php-5.2.10 -p1 cd php-5.2.10 ./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysql-sock=/tmp --with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-freetype-dir --with-iconv-dir --with-zlib-dir --with-mcrypt=/usr/local/libmcrypt --enable-soap --enable-gd-native-ttf --enable-ftp --enable-mbstring --enable-exif --enable-zend-multibyte --disable-ipv6 --enable-fastcgi --enable-fpm make && make install mkdir /usr/local/php/etc cp php.ini-dist /usr/local/php/etc/php.ini vim /usr/local/php/etc/php-fpm.conf <value
name="listen_address">/tmp/php-fcgi.sock</value> 这一行要改成这样,这里这样修改了以后,在配置nginx的时候就需要注意这个路径了。 /usr/local/php/sbin/php-fpm start 其他关于php的扩展模块安装请参考: CentOS
5.5下安装mysql5.1.57+php5.2.17(FastCGI)+nginx1.0.1高性能Web服务器 【nginx 安装以及配置】 1. nginx源码安装 cd /usr/local/src/ wget http://syslab./downloads/linux/nginx-0.9.6.tar.gz tar zxvf nginx-0.9.6.tar.gz cd nginx-0.9.6 ./configure --prefix=/usr/local/nginx --sbin-path=/usr/local/nginx/sbin/nginx --conf-path=/usr/local/nginx/conf/nginx.conf --error-log-path=/usr/local/nginx/logs/error.log --http-log-path=/usr/local/nginx/logs/access.log --pid-path=/usr/local/nginx/var/nginx.pid --lock-path=/usr/local/nginx/var/nginx.lock --http-client-body-temp-path=/dev/shm/nginx_temp/client_body --http-proxy-temp-path=/dev/shm/nginx_temp/proxy --http-fastcgi-temp-path=/dev/shm/nginx_temp/fastcgi --user=www --group=www --with-cpu-opt=pentium4F --without-select_module --without-poll_module --with-http_realip_module --with-http_sub_module --with-http_gzip_static_module --with-http_stub_status_module --without-http_ssi_module --without-http_userid_module --without-http_geo_module --without-http_memcached_module --without-http_map_module --without-mail_pop3_module --without-mail_imap_module --without-mail_smtp_module --with-pcre make && make install mkdir /dev/shm/nginx_temp 有的nginx版本编译时会因为pcre编译不过去,需要修改一下 --with-pcre=/usr/local/src/pcre-7.8,前提是已经下载了pcre源码包pcre-7.8.tar.gz,并解压到/usr/local/src/pcre-7.8,不需要编译pcre 2. 编写nginx的启动脚本,并加入系统服务 vi /etc/init.d/nginx 写入以下内容: #!/bin/bash 保存后,更改/etc/init.d/nginx的权限 chmod 755 /etc/init.d/nginx chkconfig --add nginx chkconfig nginx on 3. nginx的配置 vim /usr/local/nginx/conf/nginx.conf 把原来的文件清空,然后粘贴如下内容: user www www; worker_processes 2; error_log /usr/local/nginx/logs/nginx_error.log crit; pid /usr/local/nginx/var/nginx.pid; #Specifies the value for maximum file descriptors that can be opened by this process. worker_rlimit_nofile 51200; events { use epoll; worker_connections 6000; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 2048; server_names_hash_max_size 4096; log_format combined_realip '$remote_addr $http_x_forwarded_for [$time_local] ' '$host "$request_uri" $status ' '"$http_referer" "$http_user_agent"'; sendfile on; tcp_nopush on; keepalive_timeout 30; client_header_timeout 3m; client_body_timeout 3m; send_timeout 3m; connection_pool_size 256; client_header_buffer_size 1k; large_client_header_buffers 8 4k; request_pool_size 4k; output_buffers 4 32k; postpone_output 1460; client_max_body_size 10m; client_body_buffer_size 256k; client_body_temp_path /usr/local/nginx/client_body_temp; proxy_temp_path /usr/local/nginx/proxy_temp; fastcgi_temp_path /usr/local/nginx/fastcgi_temp; fastcgi_intercept_errors on; tcp_nodelay on; gzip on; gzip_min_length 1k; gzip_buffers 4 8k; gzip_comp_level 5; gzip_http_version 1.1; gzip_types text/plain application/x-javascript text/css text/htm application/xml; server { listen 80; server_name www.example.com; index index.html index.htm index.php; root /data/www; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/ php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name; } } 保存后就可以启动nginx了,在重启之前最好先检查一下是否有问题 如果启动不了,请到/usr/local/nginx/logs/目录下查看nginx_error.log这个日志文件。若是没有这个日志文件,很有可能是那个目录没有写权限,请执行 vim /data/www/1.php 写入如下内容: <?php 然后设定hosts文件,访问 www./1.php 看是否能解析出这个页面。 |
|
来自: 凌蓝苑 > 《linux入门教程》