一、nginx
1.cd /usr/local
2.安装wget : yum -y install wget
3.下载nginx压缩包: wget https://nginx.org/download/nginx-1.24.0.tar.gz
4.安装nginx前提准备:
yum -y install gcc-c++
yum -y install prce
yum -y install prce-devel
yum -y install zlib
yum -y install zlib-devel
yum -y install openssl
yum -y install openssl-devel
5.开放80端口:
firewall-cmd --query-port=80/tcp
firewall-cmd --add-port=80/tcp --permanent
6.编译nginx:
yum -y install make
①解压nginx: tar -xvf nginx-1.24.0.tar.gz
②进入nginx-1.24解压根目录: 执行 ./configure
自定安装nginx目录,编译地址修改
a.(默认位置/usr/local/nginx)存放nginx安装文件的位置(不一定存放核心二进制文件(取决于--sbin-path),其里面一般html、动态模块软链
./configure --prefix="/usr/local/www/nginx/nginx1.24"
b.(默认位置/usr/local/nginx/sbin/nginx)二进制的核心可执行文件(名为nginx)
./configure --sbin-path="/usr/local/www/nginx/nginx1.24/sbin/nginx"
c.默认位置/usr/local/nginx/modules)一般存放动态模块的so文件(相当于window的dll文件)
./configure --modules-path="/usr/local/www/nginx/nginx1.24/modules"
d.(默认位置/usr/local/nginx/conf/nginx.conf)nginx的关键配置文件
./configure --conf-path="/usr/local/www/nginx/nginx1.24/conf"
e.(默认位置/usr/local/nginx/logs/error.log)错误日志
./configure --error-log-path="/usr/local/www/nginx/nginx1.24/logs/error.log"
f.(默认位置/usr/local/nginx/logs/access.log)访问日志
./configure --http-log-path="/usr/local/www/nginx/nginx1.24/logs/access.log"
g.(默认位置/usr/local/nginx/logs/nginx.pid)正在运行的nginx进程号
./configure --pid-path="/usr/local/www/nginx/nginx1.24/logs/nginx.pid"
h.(默认位置/usr/local/nginx/logs/nginx.lock)nginx锁
./configure --pid-path="/usr/local/www/nginx/nginx1.24/logs/nginx.lock"
make
make install
7.配置开机启动
cd /lib/systemd/system
vim nginx.service
编辑内容如下:
[Unit]
Description=nginx
After=network.target
[Service]
Type=forking
ExecStart = /usr/local/nginx/sbin/nginx
ExecReload = /usr/local/nginx/sbin/nginx reload
ExecStop = /usr/local/nginx/sbin/nginx quit
PrivateTmp = true
[Install]
WanteBy=multi-user.target
8.启动nginx
systemctl enable nginx.service
systemctl start nginx.service
9. 最后在主机浏览器中输入虚拟机IP
二、PHP 非常详细的php出错解决方案
前提先卸载yum自带的php-5.4的自带版本:yum remove php-mysql php php-fpm php-common
1.安装php依赖包
yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel zlib zlib-devel glibc glibc-devel glib2 glib2-devel ncurses curl gdbm-devel db4-devel libXpm-devel libX11-devel gd-devel gmp-devel expat-devel xmlrpc-c xmlrpc-c-devel libicu-devel libmcrypt-devel libmemcached-devel libsqlite3x-devel oniguruma-devel
2.安装编译工具
yum groupinstall 'Development Tools'
3.下载php8.0
wget -c https://www.php.net/distributions/php-8.0.0.tar.gz
4.解压php压缩包并进入该文件根目录
tar -zxvf ./php-8.0.0.tar.gz
cd ./php-8.0.0
5.源码oniguruma库
wget https://github.com/kkos/oniguruma/releases/download/v6.9.5_rev1/onig-6.9.5-rev1.tar.gz -O onig-6.9.5.tar.gz
./configure --prefix=/usr --libdir=/lib64
6.预编译php
./configure --prefix=/usr/local/php \
--with-config-file-path=/usr/local/php/etc \
--enable-fpm \
--with-fpm-user=www-data \
--with-fpm-group=www-data \
--enable-inline-optimization \
--disable-debug \
--disable-rpath \
--enable-shared \
--enable-soap \
--with-xmlrpc \
--with-openssl \
--with-mhash \
--with-pcre-regex \
--with-sqlite3 \
--with-zlib \
--enable-bcmath \
--with-iconv \
--with-bz2 \
--enable-calendar \
--with-curl \
--with-cdb \
--enable-dom \
--enable-exif \
--enable-fileinfo \
--enable-filter \
--with-pcre-dir \
--enable-ftp \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-zlib-dir \
--with-freetype-dir \
--enable-gd-jis-conv \
--with-gettext \
--with-gmp \
--with-mhash \
--enable-json \
--libdir=/lib64
--enable-mbstring \
--enable-mbregex \
--enable-mbregex-backtrack \
--with-libmbfl \
--with-onig \
--enable-pdo \
--with-pdo-mysql \
--with-zlib-dir \
--with-mysqli
--with-pdo-sqlite \
--with-readline \
--enable-session \
--enable-shmop \
--enable-simplexml \
--enable-sockets \
--enable-sysvmsg \
--enable-sysvsem \
--enable-sysvshm \
--enable-wddx \
--with-libxml-dir \
--with-xsl \
--enable-zip \
--enable-mysqlnd-compression-support \
--with-pear \
--enable-opcache
7.编译php
make && make install
8.检验php是否安装完成
php -v
出错点:
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: ext/mysqli (ext/mysqli: cannot read file data: Is a directory), ext/mysqli.so (ext/mysqli.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'gd' (tried: ext/gd (ext/gd: cannot read file data: Is a directory), ext/gd.so (ext/gd.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library 'mysqli' (tried: ext/mysqli (ext/mysqli: cannot read file data: Is a directory), ext/mysqli.so (ext/mysqli.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
这个点我找了很久很久:
我先在本目录下 cp php.ini-development php.ini;vim php.ini进行配置 一直都报错;最后解决是在 /urs/local/php.ini 里面去把extension=mysqli && extension=gd 前面加上“;”注释掉,然后再回到php-8.0.0下重新执行5 和 6 步骤;最后完成了;
源码编译安装会出现无穷无尽的问题,本文截止已经花费了五个晚上(每晚三小时)
9.添加php-fpm环境变量,设置开启启动
vim /lib/systemd/system/php-fpm.service
输入以下内容:(pid,php-fpm,conf路径按照个人的实际路径修改)
[Unit]
Description=The PHP FastCGI Process Manager
After=syslog.target network.target
[Service]
Type=simple
PIDFile=/usr/local/php/var/run/php-fpm.pid
ExecStart=/usr/local/php/sbin/php-fpm
ExecReload=/bin/kill -USR2 $MAINPID
ExecStop=/bin/kill -SIGINT $MAINPID
[Install]
WantedBy=multi-user.target
10.为php安装composer工具 :转至
三、mysql 下载网址
yum install mysql-server --nogpgcheck:避开公钥
1.卸载mariadb(与mysql会有冲突)
查看:rpm -qa|grep mariadb
强制卸载:rpm -e --nodeps mariadb-libs
2.安装依赖
yum install -y perl net-tools
3.下载mysql安装包
wget http://repo.mysql.com/mysql-community-release-el7-5.noarch.rpm
4.编译安装包
rpm -ivh mysql-community-release-el7-5.noarch.rpm
5.安装mysql服务
yum install -y mysql-server
6.启动服务:systemctl start mysqld (又双叒报错,再次已经换过很多种编译安装方法了,文档写了一半进行不下去了,又找新的编译方法 肝就完了)
7.查看日志: journalctl -xe
出现这个问题的原因是本地编译器gcc版本过低,查看本地版本:strings /usr/lib64/libstdc++.so.6 | grep GLIBCXX
8.查找编译gcc时生成的最新动态库: find / -name "libstdc++.so*"
将最新的动态库复制到/usr/lib64路径下:
9.重建默认库的软连接:
①cd /usr/lib64
②find libstdc++.so.*
③rm -rf libstdc++.so.6
④ln -s libstdc++.so.6.0.19 libstdc++.so.6 :创建链接
到此并没有什么***用
10.下载 安装 gcc [转载](https://blog.ebancom.com/365/)
升级原因:mysql报错 ‘GLIBCXX_3.4.21’ not found
1. 下载gcc-7.3.0.tar.gz
wget http://ftp.gnu.org/gnu/gcc/gcc-7.3.0/gcc-7.3.0.tar.gz
cd /usr/local/src
tar zxvf gcc-7.3.0.tar.gz
2.下载所需组件
(1)gmp-6.1.0.tar.bz2
http://ftp.gnu.org/gnu/gmp/
(2)mpfr-3.1.4.tar.bz2
http://ftp.gnu.org/gnu/mpfr/
(3)mpc-1.0.3.tar.gz
http://ftp.gnu.org/gnu/mpc/
3.按顺序安装依赖
(1)tar -jxvf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
mkdir temp
cd temp
../configure --prefix=/usr/local/gmp-6.1.0
make && make install
(2)tar -jxvf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
mkdir temp
cd temp
../configure --prefix=/usr/local/gmp-6.1.0
make && make install
(3)tar -jxvf gmp-6.1.0.tar.bz2
cd gmp-6.1.0
mkdir temp
cd temp
../configure --prefix=/usr/local/gmp-6.1.0
make && make install
4.把库路径添加到/etc/ld.so.conf
vi /etc/ld.so.conf
添加如下代码:
/usr/local/gmp-6.1.0/lib
/usr/local/mpfr-3.1.4/lib
/usr/local/mpc-1.0.3/lib
5.建立编译输出目录,并进行配置
mkdir /usr/local/gcc-7.3.0/build
cd /usr/local/gcc-7.3.0/build
../../src/gcc-7.3.0/configure --prefix=/usr/local/gcc-7.3.0 --enable-threads=posix --disable-checking --enable-languages=c,c++ --with-gmp=/usr/local/gmp-6.1.0 --with-mpfr=/usr/local/mpfr-3.1.4 --with-mpc=/usr/local/mpc-1.0.3
5.编译及安装(这个执行过程太长了起码一个半小时,不知道是哪里不对,还在都成功了):
make && make install
6.gcc、g++、gcj设置
cd /usr/bin
ln -s /usr/local/gcc-7.3.0/bin/gcc gcc
ln -s /usr/local/gcc-7.3.0/bin/g++ g++
ln -s /usr/local/gcc-7.3.0/bin/gcj gcj
7.需要将之间/usr/lib64下的libstdc++.so.6软连接删掉,添加新的连接
find / -name "libstdc++.so*"
cd /usr/lib64/
cp /usr/local/gcc-7.3.0/lib64/libstdc++.so.6.0.24 /usr/lib64/
rm libstdc++.so.6
ln -s /usr/local/gcc-7.3.0/lib64/libstdc++.so.6.0.24 libstdc++.so.6
8.接着下载 2.27 & 2.28:
wget http://ftp.gnu.org/gnu/glibc/glibc-2.27.tar.gz
wget http://ftp.gnu.org/gnu/glibc/glibc-2.28.tar.gz
注:以上均为不成功案例
1.下载:wget https://dev.mysql.com/get/mysql80-community-release-el7-3.noarch.rpm
2.运行: rpm -ivh mysql80-community-release-el7-3.noarch.rpm
3.暗转服务:yum install mysql-server --nogpgcheck