linux安裝php7.3

linux環境下安裝php7.3。linux版本contOS 7.7 64位,PHP版本7.3.12。

(舊的linux contOS 6和PHP7.2安裝的時候,安裝PHP./configure報錯:configure: error: cannot find sources (README.GIT-RULES) in . or,用最新的linux版本和php版本可以解決這個問題)

1.安裝nginx

安裝nginx依賴庫:

#安裝Nginx的編譯環境gcc
yum install gcc-c++
 
#nginx的http模塊使用pcre解析正則表達式所以安裝perl兼容的正則表達式庫
yum install -y pcre pcre-devel
 
#nginx使用zlib對http包的內容進行gzip
yum install -y zlib zlib-devel
 
#nginx不僅支持http協議,還支持https(即在ssl協議上傳輸http),如果使用了https,需要安裝OpenSSL庫
yum install -y openssl openssl-devel

下載nginx,下載地址: http://nginx.org/en/download.html 選擇下載的版本,我這裏選擇    nginx-1.17.6,進入到下載路徑,輸入下載命令:

cd /usr/local/
wget http://nginx.org/download/nginx-1.17.6.tar.gz
tar -zxvf nginx-1.17.6.tar.gz
rm nginx-1.17.6.tar.gz
mv nginx-1.17.6 nginx
cd nginx
./configure --prefix=/usr/local/nginx
make
make install
 
#遇到make錯誤 /usr/local/nginx 路徑不存在不管,繼續 make install
 
#添加Nginx環境變量,可以在命令行直接輸入Nginx命令
vim /etc/profile
#在最後添加Nginx的路徑
export NGINX_HOME=/usr/local/nginx
export PATH=$PATH:$NGINX_HOME/sbin
 
#重新編譯環境變量
source /etc/profile
 
#啓動nginx
cd sbin
./nginx -c /usr/local/nginx/conf/nginx.conf
 
#我這邊啓動時報錯:
nginx: [alert] could not open error log file: open() "/usr/local/nginx/logs/error.log" failed (2: No such file or directory)
2018/09/25 13:59:56 [emerg] 15555#0: open() "/usr/local/nginx/logs/access.log" failed (2: No such file or directory)
#需要手動創建logs文件夾
mkdir /usr/local/nginx/logs
#再啓動
./nginx -c /usr/local/nginx/conf/nginx.conf

2.安裝PHP

安裝PHP依賴包:

yum install libxml2
yum install libxml2-devel

安裝cmake (需要安裝libzip最新版本,而libzip最新版本的安裝需要用到cmake):

wget https://cmake.org/files/v3.16/cmake-3.16.0.tar.gz
tar -zvxf cmake-3.16.0.tar.gz
rm cmake-3.16.0.tar.gz
./bootstrap
gmake
make install

測試cmake是否安裝成功:

cmake --version

安裝libzip:

wget https://libzip.org/download/libzip-1.5.2.tar.gz
tar -xvzf libzip-1.5.2.tar.gz
rm libzip-1.5.2.tar.gz
cd libzip-1.5.2
mkdir build
cd build
cmake ..
make
make install

下載php7,下載地址: http://cn2.php.net/distributions/php-7.3.12.tar.gz ,選擇下載的版本,進入到下載路徑,輸入下載命令:

cd /usr/local
wget http://cn2.php.net/distributions/php-7.3.12.tar.gz
tar -zxvf php-7.3.12.tar.gz
rm php-7.3.12.tar.gz
mv php-7.3.12 php
cd php
./configure --prefix=/usr/local/php --with-zlib --enable-zip --with-openssl --enable-fpm --enable-mbstring --with-libdir=lib64
make
make install
 
cp php.ini-production /usr/local/php/lib/php.ini
cp sapi/fpm/php-fpm /etc/init.d/php-fpm
#添加執行權限
chmod +x /etc/init.d/php-fpm
#php-fpm的配置文件
cp etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
 
#設置默認啓動php-fpm子進程數和最大啓動數
vim /usr/local/php/etc/php-fpm.d/www.conf
pm.max_children = 200
pm.start_servers = 20
pm.min_spare_servers = 10
pm.max_spare_servers = 30
 
#設置環境變量
vim /etc/profile
#最後一行加入
export PATH=/usr/local/php/bin:$PATH
 
#刷新環境變量
source /etc/profile
 
#啓動
/etc/init.d/php-fpm

附上重啓php-fpm的命令:

#找到master的進程ID
ps -ef | grep php
kill ID
#然後再次啓動
/etc/init.d/php-fpm

3.配置nginx支持php

vim /usr/local/nginx/conf/nginx.conf
#在http模塊裏面添加下面內容
server {
    listen       81;
    root        /data/www/;
    server_name 47.92.121.12;

    location / {
        index  index.htm index.html index.php;
        if (!-e $request_filename) {
           rewrite  ^/(.*)$  /index.php/$1  last;
           break;
        }
    }


    location ~ \.php/?.*$ {
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        include        fastcgi.conf;

        set $fastcgi_script_name2 $fastcgi_script_name;
        if ($fastcgi_script_name ~ "^(.+\.php)(/.+)$") {
            set $fastcgi_script_name2 $1;
            set $path_info $2;
        }
        fastcgi_param   PATH_INFO $path_info;
        fastcgi_param   SCRIPT_FILENAME   $document_root$fastcgi_script_name2;
        fastcgi_param   SCRIPT_NAME   $fastcgi_script_name2;
        fastcgi_param  ENV_TYPE product;
    }
    location ~* \.(ini|cfg|json|txt|lock|log)$ {
         return 404;
    }
}

其中81端口是自定義端口,如果是阿里雲服務器需要到阿里雲管理後臺開通81端口,rewrite是支持thinkPHP的路由寫法。

在/opt/www下新建index.php:

vi index.php

# 寫入下面內容
<?php
	phpinfo();
?>

重啓nginx:

nginx -s reload

瀏覽器訪問http:IP:81顯示PHPinfo的信息表示配置成功

4.安裝mysql

下載地址:https://dev.mysql.com/downloads/mysql/ ,選擇Linux-Genneric,64位:

下載得到tar.xz壓縮文件,xz比gz壓縮的更小,把下載的文件上傳到服務器,解壓命令:

tar -Jxf mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
rm mysql-8.0.18-linux-glibc2.12-x86_64.tar.xz
mv mysql-8.0.18-linux-glibc2.12-x86_64 mysql
 
#添加用戶組
groupadd mysql
#添加用戶mysql 到用戶組mysql
useradd -g mysql mysql
 
cd mysql/
mkdir -p data/mysql
chown -R mysql:mysql ./
mkdir mysql_install_db
chmod 777 ./mysql_install_db
# 初始化
bin/mysqld --initialize --user=mysql --basedir=/usr/local/mysql --datadir=/usr/local/mysql/data
####################################################################################################
#如果報錯:FATAL ERROR: please install the following Perl modules before executing,解決:
yum install -y perl-Module-Install.noarch
#如果報錯:Installing MySQL system tables.../usr/local/mysql/bin/mysqld: error while loading shared,解決:
yum install libaio* -y

初始化成功在最後會顯示數據庫密碼,需要記錄下來,顯示是信息:@localhost: xxxxx (xxxx就是顯示的密碼)
####################################################################################################
cp support-files/mysql.server /etc/init.d/mysqld
chmod 755 /etc/init.d/mysqld
cp support-files/my-default.cnf /etc/my.cnf

vim  /etc/my.cnf
# 寫入下面內容
[mysqld]
datadir=/usr/local/mysql
datadir=/usr/local/mysql/data
socket=/usr/local/mysql/mysql.sock
character-set-server=utf8
port=3306
sql_mode=NO_ENGINE_SUBSTITUTION,STRICT_TRANS_TABLES
symbolic-links=0

[client]
socket = /usr/local/mysql/mysql.sock
default-character-set=utf8

[mysqld_safe]
log-error=/var/log/mariadb/mariadb.log
pid-file=/var/run/mariadb/mariadb.pid

#
# include all files from the config directory
#
!includedir /etc/my.cnf.d


# 添加到環境變量
vim /etc/profile
# 最後一行寫入
export PATH=$PATH:/usr/local/mysql/bin
 
#重新編譯環境變量
source /etc/profile

#啓動服務
service mysqld start

# 如果報錯/var/log/mariadb/mariadb.log無法寫入,解決:
mkdir /var/log/mariadb
touch /var/log/mariadb/mariadb.log
chown -R mysql:mysql /var/log/mariadb
# 如果報錯/var/run/mariadb/mariadb.pid無法寫入,解決:
mkdir /var/run/mariadb
touch /var/run/mariadb/mariadb.pid
chown -R mysql:mysql /var/run/mariadb

# 測試連接
mysql -uroot -p
# 密碼是上面記錄下來的密碼

#創建遠程訪問賬號-只對單數據庫有權限
mysql -u root -p
create user rootweb@'%' identified by 'dwfe8888&uwd';
grant all privileges on test_db.* to rootweb@'%';
flush privileges;

# 用navicat連接報錯:client does not support authentication protocol requested by server consider
# 是因爲最新版的mysql的密碼機制與舊版不一致,需要修改爲舊版的密碼:
ALTER USER 'rootweb'@'%' IDENTIFIED WITH mysql_native_password BY 'dwfe8888&uwd';
flush privileges;

5.安裝redis

cd /usr/local/
wget http://download.redis.io/releases/redis-5.0.7.tar.gz
tar -zxvf redis-5.0.7.tar.gz
rm redis-5.0.7.tar.gz
mv redis-5.0.7 redis
cd redis
make
 
#設置redis服務後臺啓動
vi redis.conf
設置daemonize yes
 
#啓動服務
src/redis-server redis.conf
 
#測試
src/redis-cli

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章