分步骤安装lnmp完整版

来源:互联网 发布:wps for linux 字体 编辑:程序博客网 时间:2024/05/24 05:16

安装mysql

安装准备

添加用户
useradd -s /sbin/nologin mysql

建立所需目录
mkdir -p /usr/local/mysql/data
chown -R mysql:mysql /usr/local/mysql/data

下载源码包

wget  https://dev.mysql.com/get/Downloads/MySQL-5.6/mysql-5.6.37.tar.gz

解压

tar -zxvf mysql-5.6.37.tar.gz 

cd mysql-5.6.37

cmake -DMYSQL_USER=mysql -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DINSTALL_DATADIR=/usr/local/mysql/data -DMYSQL_UNIX_ADDR=/tmp/mysqld.sock -DDEFAULT_CHARSET=utf8  -DDEFAULT_COLLATION=utf8_general_ci -DEXTRA_CHARSETS=all -DWITH_EMBEDDED_SERVER=1 -DENABLED_LOCAL_INFILE=1 -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1


参数说明:
-DCMAKE_INSTALL_PREFIX=/usr/local/mysql //安装目录
-DMYSQL_DATADIR=/usr/local/mysql/data //数据库存放目录
-DWITH_MYISAM_STORAGE_ENGINE=1 //安装myisam存储引擎
-DWITH_INNOBASE_STORAGE_ENGINE=1 //安装innodb存储引擎
-DWITH_ARCHIVE_STORAGE_ENGINE=1 //安装archive存储引擎
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 //安装blackhole存储引擎
-DENABLED_LOCAL_INFILE=1 //允许从本地导入数据
-DDEFAULT_CHARSET=utf8   //使用utf8字符
-DDEFAULT_COLLATION=utf8_general_ci //校验字符
-DEXTRA_CHARSETS=all   //安装所有扩展字符集
-DMYSQL_TCP_PORT=3306 //MySQL监听端口
-DMYSQL_USER=mysql //MySQL用户名
其他参数:
-DWITH-EMBEDDED_SERVER=1 //编译成embedded MySQL library (libmysqld.a)
-DSYSCONFDIR=/etc //MySQL配辑文件
-DMYSQL_UNIX_ADDR=/tmp/mysqld.sock //Unix socket 文件路径
-DWITH_READLINE=1 //快捷键功能
-DWITH_SSL=yes //SSL
-DWITH_MEMORY_STORAGE_ENGINE=1 //安装memory存储引擎
-DWITH_FEDERATED_STORAGE_ENGINE=1 //安装frderated存储引擎
-DWITH_PARTITION_STORAGE_ENGINE=1 //安装数据库分区
-DINSTALL_PLUGINDIR=/usr/local/mysql/plugin //插件文件及配置路径


make && make install

chown -R mysql:mysql /usr/local/mysql

mv /usr/local/mysql/support-files/my-default.cnf /etc/my.cnf

mv /usr/local/mysql/support-files/mysql.server/etc/init.d/mysqld

chmod a+x /etc/init.d/mysqld

开机启动

chkconfig --level 345 mysqld on


设置环境变量

echo "export PATH=/usr/local/mysql/bin/:$PATH">> /etc/profile

source /etc/profile

/usr/local/mysql/scripts/mysql_install_db --user=mysql --defaults-file=/etc/my.cnf --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data 

vim /etc/my.cnf

basedir=/usr/local/mysql

datadir=/usr/local/mysql/data

wq!

mysql安装完毕,可以service mysqld restart 重启mysql 再 ps aux | grep mysqld 查看mysql进程  

mysql  -uroot -p  默认没有密码



安装nginx

下载文件: http://pan.baidu.com/s/1c19RShM

1 确定初始化环境  

   为了省事把所需要的库文件全都安装上,可以使用rpm包安装,也可以用yum命令安装,

yum -y install gcc gcc-c++ autoconf libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel libxml2 libxml2-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn libidn-devel openssl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers

安装nginx需要的库文件

yum -y install pcre-devel zlib-devel

PHP依赖的库文件

yum -y install gd-devel libjpeg-devel libpng-devel freetype-devel libxml2-devel curl-devel

        

2创建文件夹,存放lnmp需要的依赖库文件 我这里创建的是data

3安装库文件

tar zxvf libiconv-1.14.tar.gz  

cd libiconv-1.14  

./configure --prefix=/usr/local 

make && make install 

tar zxvf libmcrypt-2.5.8.tar.gz  

cd libmcrypt-2.5.8

 ./configure  

make && make install

/sbin/ldconfig 

cd libltdl 

./configure --enable-ltdl-install

make && make install 


tar zxvf mhash-0.9.9.9.tar.gz  

cd mhash-0.9.9.9/  

./configure 

make && make install 


tar zxvf mhash-0.9.9.9.tar.gz  

cd mhash-0.9.9.9/  

./configure 

make && make install 


创建软连接

ln -s /usr/local/lib/libmcrypt.la/usr/lib/libmcrypt.la 

ln -s /usr/local/lib/libmcrypt.so/usr/lib/libmcrypt.so 

ln -s /usr/local/lib/libmcrypt.so.4/usr/lib/libmcrypt.so.4 

ln -s /usr/local/lib/libmcrypt.so.4.4.8/usr/lib/libmcrypt.so.4.4.8 

ln -s /usr/local/lib/libmhash.a/usr/lib/libmhash.a 

ln -s /usr/local/lib/libmhash.la/usr/lib/libmhash.la 

ln -s /usr/local/lib/libmhash.so/usr/lib/libmhash.so 

ln -s /usr/local/lib/libmhash.so.2/usr/lib/libmhash.so.2 

ln -s /usr/local/lib/libmhash.so.2.0.1 /usr/lib/libmhash.so.2.0.1 

ln -s /usr/local/bin/libmcrypt-config/usr/bin/libmcrypt-config 


tar -zxvf mcrypt-2.6.8.tar.gz  

cd mcrypt-2.6.8/  

/sbin/ldconfig 

./configure 

make && make install 

 

建立php安装目录

mkdir -p /usr/local/php

tar axvf  php-5.6.31.tar.gz 

cd  php-5.6.31

export LIBS="-lm -ltermcap -lresolv"
export DYLD_LIBRARY_PATH="/usr/local/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"
export LD_LIBRARY_PATH="/usr/local/mysql/lib/:/lib/:/usr/lib/:/usr/local/lib:/lib64/:/usr/lib64/:/usr/local/lib64"


./configure --prefix=/usr/local/php --with-config-file-path=/etc --with-iconv-dir=/usr/local/ --with-freetype-dir --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-jpeg-dir --with-png-dir --with-zlib --with-mhash --enable-sockets --enable-ftp --with-libxml-dir --enable-xml --disable-rpath --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --with-curl --with-curlwrappers --enable-mbregex --enable-mbstring --with-mcrypt --with-gd  --enable-gd-native-ttf --with-openssl --with-mhash --enable-pcntl --enable-sockets --with-ldap --with-ldap-sasl --enable-fpm --with-xmlrpc --enable-zip --enable-soap --without-pear

编译出现configure: error: Cannot find ldap libraries in /usr/lib. 错误

执行cp -frp /usr/lib64/libldap* /usr/lib/

出现 make: *** [ext/fileinfo/libmagic/apprentice.lo] Error 1 表示内存不足1 G

在 上面编译命令后 加 --disable-fileinfo  再执行编译命令

make ZEND_EXTRA_LIBS='-liconv' 


make install 

cp php.ini-production /etc/php.ini


将php-fpm 作为服务运行

cp sapi/fpm/init.d.php-fpm  /etc/init.d/php-fpm

cd /usr/local/php/etc

mv php-fpm.conf.default  php-fpm.conf

chmod 755 /etc/init.d/php-fpm

chkconfig --add php-fpm

chkconfig --level 345 php-fpm on

服务方式启动php-fpm

service php-fpm start


启动失败,Starting php-fpm /usr/local/php/sbin/php-fpm: error while loading shared libraries: libmysqlclient.so.18: cannot open shared object file: No such file or directory
 failed

64位执行 ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib64/

32位执行 ln -s /usr/local/mysql/lib/libmysqlclient.so.18  /usr/lib/

再次启动 启动成功


安装nginx:


useradd www

安装pcre

tar zxvf pcre-8.32.tar.gz

cd pcre-8.32/

./configure --prefix=/usr/local/pcre

make && make install

安装nginx

tar zxvf nginx-1.0.15.tar.gz

cd nginx-1.0.15/

./configure --user=www --group=www--prefix=/usr/local/nginx --with-http_stub_status_module --with-http_ssl_module--with-http_gzip_static_module --with-ipv6

make && make install

nginx 加入环境变量

vi /etc/profile
在末尾加上:
#nginx configureexport NGINX_HOME=/usr/local/nginxexport PATH=$PATH:$NGINX_HOME/sbin
保存退出 执行:source /etc/profile 使配置生效
nginx -v
nginx version: nginx/1.10.2
执行成功
将nginx 加入系统服务
 vim /etc/init.d/nignx 
加入
#!/bin/sh # # nginx - this script starts and stops the nginx daemon # # chkconfig:   - 85 15 # description: Nginx is an HTTP(S) server, HTTP(S) reverse \ #               proxy and IMAP/POP3 proxy server # processname: nginx # config:      /etc/nginx/nginx.conf # config:      /etc/sysconfig/nginx # pidfile:     /var/run/nginx.pid # Source function library. . /etc/rc.d/init.d/functions # Source networking configuration. . /etc/sysconfig/network # Check that networking is up. [ "$NETWORKING" = "no" ] && exit 0 nginx="/usr/local/nginx/sbin/nginx" prog=$(basename $nginx) NGINX_CONF_FILE="/usr/local/nginx/conf/nginx.conf" [ -f /etc/sysconfig/nginx ] && . /etc/sysconfig/nginx lockfile=/var/lock/subsys/nginx start() {     [ -x $nginx ] || exit 5     [ -f $NGINX_CONF_FILE ] || exit 6     echo -n $"Starting $prog: "     daemon $nginx -c $NGINX_CONF_FILE     retval=$?     echo     [ $retval -eq 0 ] && touch $lockfile     return $retval } stop() {     echo -n $"Stopping $prog: "     killproc $prog -QUIT     retval=$?     echo     [ $retval -eq 0 ] && rm -f $lockfile     return $retval killall -9 nginx } restart() {     configtest || return $?     stop     sleep 1     start } reload() {     configtest || return $?     echo -n $"Reloading $prog: "     killproc $nginx -HUP RETVAL=$?     echo } force_reload() {     restart } configtest() { $nginx -t -c $NGINX_CONF_FILE } rh_status() {     status $prog } rh_status_q() {     rh_status >/dev/null 2>&1 } case "$1" in     start)         rh_status_q && exit 0     $1         ;;     stop)         rh_status_q || exit 0         $1         ;;     restart|configtest)         $1         ;;     reload)         rh_status_q || exit 7         $1         ;;     force-reload)         force_reload         ;;     status)         rh_status         ;;     condrestart|try-restart)         rh_status_q || exit 0             ;;     *)          echo $"Usage: $0 {start|stop|status|restart|condrestart|try-restart|reload|force-reload|configtest}"         exit 2 esac  
执行:
chmod 755 /etc/init.d/nginx
chkconfig --add nginx
nginx启动、停止、无间断服务重启

service nginx start
service nginx stop
service nginx reload