Tutorial on setting up linux php environment

藏色散人
Release: 2023-03-02 11:26:01
Original
3258 people have browsed it

How to build a linux php environment: first obtain the relevant installation packages; then install Apache and mysql; then modify the configuration file "httpd.conf"; finally set the environment variables and start automatically at boot, compile and install PHP .

Tutorial on setting up linux php environment

1. Obtain the installation package

  • PHP download address: http://cn.php.net/distributions /php-7.2.6.tar.gz
  • Apache download address: http://mirrors.tuna.tsinghua.edu.cn/apache//httpd/httpd-2.4.33.tar. gz
  • MySQL download address: https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz

2. Install Apache

1. Dependency package installation

1) Install compiler gcc, gcc-c

yum install -y gcc gcc-c++
Copy after login

2) Install dependencies Package expat-devel, zlib-devel, openssl-devel

yum install -y expat-devel zlib-devel openssl-devel
Copy after login

2) Install the dependent package apr

Note: If the dependent package does not exist, go to the website to find the latest package and change it accordingly Just download the version number

wget http://mirror.bit.edu.cn/apache//apr/apr-1.6.3.tar.gz
tar zxvf apr-1.6.2.tar.gzcd apr-1.6.2
./configure --prefix=/usr/local/apr
make && make install
Copy after login

3) Install the dependent package apr-util

wget http://mirror.bit.edu.cn/apache//apr/apr-util-1.6.1.tar.gz
tar zxvf apr-util-1.6.0.tar.gzcd apr-util-1.6.0
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install
Copy after login

4) Install the dependent package pcre

wget https://ftp.pcre.org/pub/pcre/pcre-8.42.tar.gz
tar zxvf pcre-8.41.tar.gzcd pcre-8.41
./configure --prefix=/usr/local/pcre
make && make install
Copy after login

Note: Install the apr and apr-util packages Copy to the srclib directory of the Apache installation package

Name them apr, apr-util respectively, without the subsequent version number

2. Installation process

1) Unzip the Apache installation package

tar zxvf httpd-2.4.33.tar.gz
Copy after login

 注意:       将apr、apr-util安装包拷贝到Apache安装包的srclib目录中

        名称分别命名为apr、apr-util,不要后面的版本号

2) 编译、安装

cd httpd-2.4.28
./configure --prefix=/usr/local/server/apache \
--with-apr=/usr/local/apr \
--with-apr-util=/usr/local/apr-util \
--with-pcre=/usr/local/pcre \--with-mysql=shared,mysqlnd                                                                                    
--enable-so \
--enable-ssl \
--enable-deflate \
--enable-rewrite \
--enable-headers \
--enable-expires \
--disable-cgid\
--disable-cgi
Copy after login

 

    3. 修改配置文件httpd.conf

vim /usr/local/server/apache/conf/httpd.conf
Copy after login

去掉ServerName前面的 #

并将ServerName后面的网址改为localhost:80

    4. 将httpd加入系统服务并设置开机自启

1) 将httpd加入系统服务

cp /usr/local/server/apache/bin/apachectl /etc/init.d/httpd
Copy after login

2) 修改/etc/init.d/httpd,在第3行加入以下内容

# chkconfig: 345 85 15# description: Activates/Deactivates Apache Web Server
Copy after login

注意: 代码中的 # 不可以去掉

3) 设置系统服务开机自启

systemctl enable httpd
Copy after login

4) 启动Apache

service httpd start
Copy after login

 

三、安装MySQL

    1. 安装前准备

1) 解压安装包

tar zxvf mysql-8.0.11-linux-glibc2.12-x86_64.tar.gz mv mysql-8.0.11-linux-glibc2.12-x86_64 /usr/local/server/mysql
Copy after login

2) 创建用户和用户组并分配相应的权限

groupadd mysql
useradd -r -g mysql mysql
chown -R mysql:mysql .   #注意后面有个点
Copy after login

 

    2. mysql的初始化并做基本配置

1) 初始化mysql

cd /usr/local/server/mysql
bin/mysqld \
--initialize \
--user=mysql \
--basedir=/usr/local/server/mysql \
--datadir=/usr/local/server/mysql/data \
Copy after login

注意 : 如果报错 , 则缺哪个库yum安装即可                                                                                                                             bin/mysqld: error while loading shared libraries: libaio.so.1: cannot open shared object file: No such file or directory

yum install libaio                                                                             

2) 配置mysql

vim my.cnf  # 创建配置文件
Copy after login

本示例仅保证mysql可以正常运行,更多配置请参考官方文档说明

[mysqld]skip-grant-tablesbasedir = /usr/local/server/mysqldatadir = /usr/local/server/mysql/dataport = 3306
Copy after login

将配置文件软链接到 /etc/ 目录

rm -rf /etc/my.cnfln -s /usr/local/server/mysql/my.cnf /etc/my.cnf
Copy after login

    3. 启动mysql并设置root用户密码

1) 启动mysql

support-files/mysql.server start  # 启动MySQLbin/mysql -uroot -p  # 这里直接回车,无须输入密码
Copy after login

2) 重置root用户密码

use mysql;
update user set authentication_string='' where user='root';
exit;
Copy after login

3 )  删除/etc/my.cnf文件的 skip-grant-tables , 重启mysql服务

  support-files/mysql.server restart  #重启mysql
Copy after login

4 )  用root用户进行登录

  mysql -u root -p  
  passwrod:直接回车
Copy after login

5 )  使用ALTER修改root用户密码,初始化完毕 。退出,使用新密码登录

  ALTER user 'root'@'localhost' IDENTIFIED BY 'new_password';
Copy after login

    4. 设置环境变量和开机自启

1) 设置环境变量

编辑profile文件

vim /etc/profile
Copy after login

添加下列信息到profile尾部

export PATH=$PATH:/usr/local/server/mysql/bin
Copy after login

使环境变量立即生效

source /etc/profile
Copy after login

2) 设置开机自启

cp support-files/mysql.server /etc/init.d/mysqld  
systemctl enable mysqld
Copy after login

 

    5. 防火墙设置

CentOS默认开启了 firewall 防火墙,下面我们使用firewall开启3306l端口

1) 开启之前我们先查询下3306端口是否开启

firewall-cmd --query-port=3306/tcp
Copy after login

2) 我们可以选择临时开启或者永久开启3306端口

firewall-cmd --add-port=3306/tcp  # 临时开启3306端口  firewall-cmd --permanent --zone=public --add-port=3306/tcp  # 永久开启3306端口
Copy after login

3) 重启firewall

firewall-cmd --reload
Copy after login

 

    6. 远程访问

1) 给予任何主机访问mysql的权限

create user root@'%' identified by 'your_password';                                                           
grant all privileges on *.* to root@'%';
Copy after login

2) 使权限修改生效

FLUSH PRIVILEGES;
Copy after login

四、安装PHP

    1. 安装步骤

1) 安装依赖包

yum -y install wget vim pcre pcre-devel openssl openssl-devel \
libicu-devel 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 ncurses ncurses-devel \
curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel \
nss_ldap jemalloc-devel cmake boost-devel bison automake libevent \
libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt \
mhash libxslt libxslt-devel readline readline-devel gmp gmp-devel \
libcurl libcurl-devel openjpeg-devel libcurl.x86_64 libcurl-devel.x86_64 \
libjpeg-turbo libjpeg-turbo-devel libpng freetype  libpng-devel \
freetype-devel icu libicu libicu-devel  openldap openldap-clients \
openldap-devel openldap-serverscp -frp /usr/lib64/libldap* /usr/lib/
Copy after login

2) 解压PHP安装包

tar zxvf php-7.2.6.tar.gz
Copy after login

3) 编译安装

cd php-7.2.6
./configure --prefix=/usr/local/server/php \
--with-apxs2=/usr/local/server/apache/bin/apxs \
--with-config-file-path=/usr/local/server/php \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd-compression-support \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--with-libmbfl \
--enable-ftp \
--with-gd \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--with-gettext \
--disable-fileinfo \
--enable-opcache \
--with-pear \
--enable-maintainer-zts \
--with-ldap=shared \
--without-gdbm \make && make install
Copy after login

 

    2. 配置php.ini

1) 将配置文件拷贝到PHP安装目录

cp php.ini-* /usr/local/server/php/
Copy after login

2) 生成php.ini

cp php.ini-development /usr/local/server/php/php.inicp /usr/local/server/php/etc/php-fpm.conf.default /usr/local/server/php/etc/php-fpm.conf
Copy after login

<br>

3 ) 修改php.ini配置文件

expose_php = Off
short_open_tag = ON
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 32M
date.timezone = Asia/Shanghai
mbstring.func_overload=2
extension_dir = "/usr/local/server/php/lib/php/extensions/no-debug-zts-20170718/"
Copy after login

<br>

<br>
Copy after login

    3. 修改httpd.conf

载入PHP模块,如httpd.conf中有下列代码则直接去掉前面#即可,没有则加入

LoadModule php7_module modules/libphp7.so
Copy after login

在底部加入以下代码使得Apache可以解析php文件

<IfModule mod_php7.c>
	AddType application/x-httpd-php .php</IfModule>
Copy after login

找到如下代码,在index.html后面加入index.php

<IfModule dir_module>
    DirectoryIndex index.html</IfModule>
Copy after login

重启Apache

service httpd restart
Copy after login

 

    4. 测试PHP是否成功安装

创建/usr/local/server/apache/htdocs/index.php

vim /usr/local/server/apache/htdocs/index.php
Copy after login

在index.php中编写以下代码

<?php

   phpinfo();?>
Copy after login

如果出现以下页面则安装成功

MYSQL8.0安装后 phpMyAdmin无法登陆解决

MYSQL8.0的密码验证方式从mysql_native_password改为了caching_sha2_password<br>

vim my.cnf

default_authentication_plugin=mysql_native_password
Copy after login

进入mysql修改一下密码和加密插件

use mysql;  
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_password';    
FLUSH PRIVILEGES;
Copy after login

The above is the detailed content of Tutorial on setting up linux php environment. For more information, please follow other related articles on the PHP Chinese website!

Related labels:
source:php.cn
Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!