一、安装MYSQL
1.下载MYSQL: cd /usr/local/user
2.解压:
tar zxvf mysql-5.1.40-linux-i686-icc-glibc23.tar.gz
3.把解压后的mysql包移动到/usr/local/mysql
mv mysql-5.1.40-linux-i686-icc-glibc23.tar.gz /usr/local/mysql
4.创建mysql账户
useradd -s /sbin/nologin mysql //-s /sbin/nologin 表示mysql账号不能登陆linux
5.创建mysql的数据库存放路径并初始化数据库
cd /usr/local/mysql mkdir -p /data/mysql chown -R mysql:mysql /data/mysql ./scripts/mysql_install_db --user=mysql --datadir=/data/mysql //--user定义所属主,datadir为数据库存放路径;这一步出现两个OK就说明进行正确。
6.复制配置文件
cp support-files/ my-large.cnf /etc/my.cof
7.复制启动脚本到/etc/init.d目录下,并修改权限
cp support-files/mysql.server /etc/init.d./mysqld chmod 755 /etc/initd/mysqld
8.修改启动脚本
vim /etc/init.d/mysqld 找到“datadir=”改过 datadir=/data/mysql
9.把mysql添加到开机启动
chkconfig -add mysqld chkconfig mysqld on service mysqld start //如果启动不了,请到 /data/mysql/ 下查看错误日志,这个日志通常是主机名.err. 检查mysql是否启动的命令为: ps aux |grep mysqld
二、安装PHP
1.下载PHP
cd /usr/local/src wget http://am1.php.net/distributions/php-5.3.27.tar.gz
2.解压
tar zxvf php-5.3.27.tar.gz
创建用户:
useradd -s /sbin/nologin -M php-fpm
3.配置编译参数
cd /php-5.3.27 ./configure \ --prefix=/usr/local/php \ --with-config-file-path=/usr/local/php/etc \ --enable-fpm \ --with-fpm-user=php-fpm \ --with-fpm-group=php-fpm \ --with-mysql=/usr/local/mysql \ --with-mysql-sock=/tmp/mysql.sock \ --with-libxml-dir \ --with-gd \ --with-jpeg-dir \ --with-png-dir \ --with-freetype-dir \ --with-iconv-dir \ --with-zlib-dir \ --with-mcrypt \ --enable-soap \ --enable-gd-native-ttf \ --enable-ftp \ --enable-mbstring \ --enable-exif \ --enable-zend-multibyte \ --disable-ipv6 \ --with-pear \ --with-curl \ --with-openssl
配置参数前,最好把这些包都安装上: yum install -y gcc gcc-c++ libxml2 libxml2-devel openssl-devel libcurl-devel openjpeg openjpeg-devel gd gd-devel libmcrypt-devel 其中libmcrypt-devel需要安装扩展源后才能用yum安装
4.编译
make(在这一步若出现 “/usr/bin/ld: cannot find -lltdl” collect2: ld returned 1 exit status make: *** [sapi/fpm/php-fpm] 错误 1”解决的办法是 yum install -y libtool-ltdl-devel)
5.安装
make install
6.修改配置文件
cp php.ini-production /usr/local/php/etc/php.ini vim /usr/local/php/etc/php-fpm.conf
把下面的内容写入此文件内:
[global] pid = /usr/local/php/var/run/php-fpm.pid error_log = /usr/local/php/var/log/php-fpm.log [www] listen = /tmp/php-fcgi.sock user = php-fpm group = php-fpm pm = dynamic pm.max_children = 50 pm.start_servers = 20 pm.min_spare_servers = 5 pm.max_spare_servers = 35 pm.max_requests = 500 rlimit_files = 1024
保存配置文件后,检验配置文件是否正确:
/usr/local/php/sbin/php-fpm -t
若出现有 "test is successful" 的字段,则说明配置正确。
7.启动php-fpm
cp /usr/local/src/php-5.3.27/sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm chmod 755 /etc/init.d/php-fpm chkconfig php-fpm on //开机启动php-fpm服务,如果不想开机启动,此步可省略 service php-fpm start //启动php-fpm ps aux |grep php-ftm //看看是否有开启,一共有20多个进程
三、安装nginx
1.下载nginx
cd /usr/local/src wget http://nginx.org/download/nginx-1.4.4.tar.gz
2.解压
tar zxvf nginx-1.4.4.tar.gz
3.配置编译参数
cd nginx-1.4.4 ./configure \ --prefix=/usr/local/nginx \ --with-http_realip_module \ --with-http_sub_module \ --with-http_gzip_static_module \ --with-http_stub_status_module \ --with-pcre
这一步如果报错出现 “PCRE”则 yum install -y pcre pcre-devel即可
4.编译和安装
make && make install
因为nginx不是很大,所以安装的很快,用“echo $?”检测上一步有没有出错,若为“0”则安装正确
5.编写nginx启动脚本并加入系统服务
vim /etc/init.d/nginx
写入如下内容:
#!/bin/bash # chkconfig: - 30 21 # description: http service. # Source Function Library . /etc/init.d/functions # Nginx Settings NGINX_SBIN="/usr/local/nginx/sbin/nginx" NGINX_CONF="/usr/local/nginx/conf/nginx.conf" NGINX_PID="/usr/local/nginx/logs/nginx.pid" RETVAL=0 prog="Nginx" start() { echo -n $"Starting $prog: " mkdir -p /dev/shm/nginx_temp daemon $NGINX_SBIN -c $NGINX_CONF RETVAL=$? echo return $RETVAL } stop() { echo -n $"Stopping $prog: " killproc -p $NGINX_PID $NGINX_SBIN -TERM rm -rf /dev/shm/nginx_temp RETVAL=$? echo return $RETVAL } reload(){ echo -n $"Reloading $prog: " killproc -p $NGINX_PID $NGINX_SBIN -HUP RETVAL=$? echo return $RETVAL } restart(){ stop start } configtest(){ $NGINX_SBIN -c $NGINX_CONF -t return 0 } case "$1" in start) start ;; stop) stop ;; reload) reload ;; restart) restart ;; configtest) configtest ;; *) echo $"Usage: $0 {start|stop|reload|restart|configtest}" RETVAL=1 esac exit $RETVAL
保存后,更改权限:
chmod 755 /etc/init.d/nginx chkconfig --add nginx chkconfig nginx on //些操作为开机启动nginx,若是不想可忽略;
6.更改配置文件
> /usr/local/nginx/conf/nginx.conf //">"符号为重定向,单独用它可以把一个文本文档快速的清空; vim /usr/local/nginx/conf/nginx.conf
写入如下内容:
user nobody nobody; worker_processes 2; error_log /usr/local/nginx/logs/nginx_error.log crit; pid /usr/local/nginx/logs/nginx.pid; worker_rlimit_nofile 51200; events { use epoll; worker_connections 6000; } http { include mime.types; default_type application/octet-stream; server_names_hash_bucket_size 3526; 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 localhost; index index.html index.htm index.php; root /usr/local/nginx/html; location ~ \.php$ { include fastcgi_params; fastcgi_pass unix:/tmp/php-fcgi.sock; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/local/nginx/html$fastcgi_script_name; } } }
保存配置后,先检验配置文件是否有错误存在:
/usr/local/nginx/sbin/nginx -t //若显示有"syntax is ok"和"test is successful"的字段则说明配置文件没有问题,否则需要根据错误提示来修改配置文件;
启动 nginx:
service nginx start ps aux |grep nginx //查看是否有nginx的进程,是否启动;
四、测试是否解析php文件
创建测试文件:
vim /usr/local/nginx/html/1.php
写入如下内容:
<?php echo "是否解析php" ?>php
保存后,测试:
curl localhost/1.php #若是没有curl这条命令,需要安装yum install -y curl
是否解析php[root@username nginx-1.4.4]# //只有显示这种形式才说明正确解析,否则需要修改配置文件;
至此LNMP的环境算是搭建完成了!