分步骤安装lnmp完整版(带源码)

来源:互联网 发布:保融软件 编辑:程序博客网 时间:2024/06/05 20:11

安装mysql

安装准备

创建mysql用户:

useradd -s /sbin/nologin mysql

建立所需目录:

mkdir -p /usr/local/mysql/data

我这里存放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

我安装的是mysql5.6版本

解压:

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 //插件文件及配置路径

出现camke错误:

该报错原因是未安装ncurses-devel,安装
yum -y install ncurses-devel
删除CMakeCache.txt
find / -name CMakeCache.txt
rm -rf /usr/local/src/cmake-2.8.8/Tests/Complex/Cache/CMakeCache.txt
rm -rf /usr/local/src/cmake-2.8.8/Tests/ComplexOneConfig/Cache/CMakeCache.txt
rm -rf /usr/local/src/cmake-2.8.8/Tests/ComplexRelativePaths/Cache/CMakeCache.txt
rm -rf /usr/local/src/mysql-5.6.25/CMakeCache.txt
全部删除后再重新cmake,OK。

安装:

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

设置mysql开机启动:

chkconfig –level 345 mysqld on

设置环境变量:

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

使环境变量生效:

source /etc/profile

告诉mysql配置文件目录和配置文件目录路径:

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

编辑mysql配置文件:

vim /etc/my.cnf

增加以下配置:

basedir=/usr/local/mysql
datadir=/usr/local/mysql/data

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

mysql -uroot -p 默认没有密码

安装nginx+php

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

确定初始化环境

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

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

安装nginx需要的库文件

yum -y install pcre-devel zlib-devel

PHP依赖的库文件

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

安装库文件

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

创建软连接

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

继续安装需要的依赖文件


cd mcrypt-2.6.8/
/sbin/ldconfig
./configure
make && make install

出现configure: error: * libmcrypt was not found解决方案
export LD_LIBRARY_PATH=/usr/local/lib: LD_LIBRARY_PATH

建立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”

这里注意文件路径 export 和后面是一跳命令

编译:

./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

确定php配置文件路径

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

将php-fpm 作为服务运行

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

这里的路径是解压后的php文件目录路径

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
32位系统执行:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/
64位系统执行:ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib64/
启动成功

安装nginx

创建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 –with-http_random_index_module

安装

make && make install

nginx 加入环境变量

vi /etc/profile
在末尾加上:
#nginx configure
export NGINX_HOME=/usr/local/nginx
export PATH =¥PATH:¥NGINX_HOME/sbin

注意:¥转成$ 编辑器的原因不能使用

保存退出 执行:source /etc/profile 使配置生效
nginx -v

nginx version: nginx/1.10.2

说明安装成功

将nginx 加入系统服务

vim /etc/init.d/nginx

#!/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

原创粉丝点击