软件版本
centos7.4.1708 apache2.4.33 mysql8.0.11 php7.2.5 nginx1.14.0
一、卸载软件,以Apache为例,有些服务器自带了apache软件,我们需要先卸载
whereis httpd rpm -qa | grep httpd systemctl stop httpd.service #先停掉服务 yum -y remove httpd rpm -qa | grep httpd #罗列软件包名称 yum -e xxxxxx #逐个删除上一步所罗列的软件包 # 或者使用命令 rpm -e --nodeps xxxxxx
二、安装Apache依赖
yum install gcc gcc++ gcc-c++ libxml2-devel expat-devel wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz tar zxvf pcre-8.42.tar.gz cd pcre-8.42 ./configure --prefix=/usr/local/pcre make && make install wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-util-1.6.1.tar.gz wget https://mirrors.tuna.tsinghua.edu.cn/apache/apr/apr-1.6.3.tar.gz wget http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.33.tar.gz tar zxvf httpd-2.4.33.tar.gz tar zxvf apr-util-1.6.1.tar.gz tar zxvf apr-1.6.3.tar.gz mv apr-1.6.3 apr mv apr-util-1.6.1 apr-util mv apr apr-util httpd-2.4.33/srclib/
三、安装Apache
./configure --prefix=/usr/local/apache2 -with-pcre=/usr/local/pcre/bin/pcre-config --with-included-apr make && make install cd /usr/local/apache2/bin ./apachectl -k start #apache查看工作模式 #/usr/local/apache2/bin/apachectl -V
外部访问80端口,提示不能访问,这个时候我们要设置防火墙开放80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent #对外开放端口,--permanent永久生效 firewall-cmd --reload #systemctl restart firewalld.service #service firewalld restart #查看已经开放的端口firewall-cmd --list-ports #移除端口 firewall-cmd --permanent --remove-port=80/tcp
四、安装MySQL8.0依赖
yum install cmake openssl openssl-devel ncurses-devel
五、安装MySQL
wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11.tar.gz ###File size limit exceeded (core dumped) ###如果下载一部分后就断掉了,执行命令 ulimit -f 1024000 tar zxvf mysql-8.0.11 cd mysql-8.0.11 useradd -M -s /sbin/nologin mysql #创建mysql用户 mkdir -p /usr/local/mysql/data mkdir -p /usr/local/mysql/conf chown mysql:mysql /usr/local/mysql cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/usr/local/mysql/data -DSYSCONFDIR=/usr/local/mysql/conf -DMYSQL_USER=mysql -DWITH_MYISAM_STORAGE_ENGINE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/usr/local/mysql/mysql.sock -DMYSQL_TCP_PORT=3306 -DEXTRA_CHARSETS=all -DDEFAULT_CHARSET=utf8 -DDEFAULT_COLLATION=utf8_general_ci -DWITH_DEBUG=0 -DMYSQL_MAINTAINER_MODE=0 -DWITH_SSL:STRING=bundled -DWITH_ZLIB:STRING=bundled -DDOWNLOAD_BOOST=1 -DWITH_BOOST=./boost make && make install
六、初始化MySQL
/usr/local/mysql/bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data ##初始化MySQL,初始化后会自动生成mysql密码,注意查看 mv /etc/my.cnf /usr/local/mysql/conf/my.cnf vi my.cnf >basedir=/usr/local/mysql >datadir=/usr/local/mysql/data >socket=/usr/local/mysql/mysql.sock >[mysqld_safe] >log-error=/var/log/mysql/mysql.log >pid-file=/var/run/mysql/mysql.pid >:wq mkdir -p /var/log/mysql/ mkdir -p /var/run/mysql/ chown mysql:mysql /var/log/mysql/ chown mysql:mysql /var/run/mysql/ cp /usr/local/mysql/support-files/mysql.server /etc/init.d/mysqld ##配置启动脚本 chmod +x /etc/init.d/mysqld cp /usr/local/mysql/bin/mysql /usr/bin/mysql ##将MySQL添加到bash里面 service mysqld restart mysql -uroot -p >set password = '123456'; #如果是其他低版本,可能会是set password = password('string')
# 添加到系统服务chkconfig --add mysqld # 开机启动chkconfig mysqld on #查看mysql配置文件路径/usr/local/mysql/bin/mysqld --verbose --help |grep -A 1 'Default options' #配置mysql环境变量 #vim /etc/profile #export PATH=/usr/local/mysql/bin:$PATH #source /etc/profile
七、安装PHP7依赖
yum -y install libcurl-devel libwebp libwebp-devel libjpeg-devel libpng libpng-devel freetype-devel libxslt-devel
八、安装PHP7
./configure --prefix=/usr/local/php/ \ --with-config-file-path=/usr/local/php/etc/ \ --with-apxs2=/usr/local/apache2/bin/apxs \ # apache中生成 LoadModule php7_module modules/libphp7.so --enable-fpm \ --with-zlib \ --with-libxml-dir \ --enable-sockets \ --with-curl \ --with-jpeg-dir \ --with-png-dir \ --with-gd \ --with-freetype-dir \ --enable-gd-native-ttf \ #7.2废弃 --with-xmlrpc \ --with-openssl \ --with-mhash \ --with-mcrypt \ #7.2废弃 --with-pear \ --enable-mbstring \ --enable-sysvshm \ --enable-zip \ --with-pdo-mysql \ --enable-fileinfo \ --with-xsl make && make install #如果make的时候出现错误,使用make clean重试
九、配置Apache与PHP通信
vi /usr/local/apache2/conf/httpd.conf >LoadModule php7_module modules/libphp7.so >AddType application/x-httpd-php .php >AddType application/x-httpd-php-source .phps >DirectoryIndex index.html index.php cp /home/php-7.2.5/php.ini-production /usr/local/php/etc/php.ini vi /usr/local/php/etc/php.ini >extension=pdo_mysql >pdo_mysql.default_socket=/usr/local/mysql/mysql.sock /usr/local/apache2/bin/apachectl -k restart
十、错误处理
安装好环境后,使用PDO连接MySQL8会报错,
提示The server requested authentication method unknown to the client,
#处理办法:CREATE USER 'adtuu'@'%' IDENTIFIED WITH mysql_native_password BY '123456'; #参考https://dev.mysql.com/doc/refman/8.0/en/create-user.html
十一、Nginx安装
cd /home wget http://nginx.org/download/nginx-1.14.0.tar.gz tar zxvf nginx-1.14.0.tar.gz cd nginx-1.14.0 useradd nginx -s /sbin/nologin -M ./configure --prefix=/usr/local/nginx --user=nginx --group=nginx --with-http_stub_status_module --with-http_ssl_module make && make install
十二、Nginx配置
cd /usr/local/php/etc cp php-fpm.conf.default php-fpm.conf vi php-fpm.conf >pid = run/php-fpm.pid cp /usr/local/php/etc/php-fpm.d/www.conf.default php-fpm.d/www.conf vi www.conf >listen = 127.0.0.1:9000 cd /usr/local/nginx/conf/ vi nginx.conf >location ~ \.php$ { > root html; > fastcgi_pass 127.0.0.1:9000; > fastcgi_index index.php; > fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; > include fastcgi_params; >} #启动php-fpm /usr/local/php/sbin/php-fpm -c /usr/local/php/etc/php.ini -y /usr/local/php/etc/php-fpm.conf #平滑重启php-fpm kill -USR2 `cat /usr/local/php/var/run/php-fpm.pid` #关闭php-fpm kill -INT `cat /usr/local/php/var/run/php-fpm.pid` #启动 /usr/local/nginx/sbin/nginx #重启 /usr/local/nginx/sbin/nginx -s reload #关闭 /usr/local/nginx/sbin/nginx -s stop
十三、其他方式
screen -S lnmp wget http://soft.vpser.net/lnmp/lnmp1.5.tar.gz -cO lnmp1.5.tar.gz && tar zxf lnmp1.5.tar.gz && cd lnmp1.5 && ./install.sh lnmp
==============================================================
wget http://mirrors.linuxeye.com/oneinstack-full.tar.gz && tar xzf oneinstack-full.tar.gz && ./oneinstack/install.sh --nginx_option 1 --apache_option 1 --php_option 7 --phpcache_option 4 --php_extensions imagick --phpmyadmin --db_option 5 --dbinstallmethod 1 --dbrootpwd oneinstack --pureftpd --redis --memcached --iptables --ssh_port 9487 --reboot
==============================================================
访客评论