Home  >  Article  >  Database  >  How to compile and install Nginx+MySQL+PHP on CentOS

How to compile and install Nginx+MySQL+PHP on CentOS

WBOY
WBOYforward
2023-05-28 09:49:13585browse

1. Configure the firewall, open port 80 and 3306

vi /etc/sysconfig/iptables #编辑防火墙配置文件

# firewall configuration written by system-config-firewall

# manual customization of this file is not recommended.

*filter

:input accept [0:0]

:forward accept [0:0]

:output accept [0:0]

-a input -m state --state established,related -j accept

-a input -p icmp -j accept

-a input -i lo -j accept

-a input -m state --state new -m tcp -p tcp --dport 22 -j accept

-a input -m state --state new -m tcp -p tcp --dport 3306 -j accept

-a input -m state --state new -m tcp -p tcp --dport 80 -j accept

-a input -j reject --reject-with icmp-host-prohibited

-a forward -j reject --reject-with icmp-host-prohibited

commit

:wq! #保存退出

service iptables restart #Finally restart the firewall to make the configuration take effect

2. Close selinux

vi /etc/selinux/config

#selinux=enforcing #注释掉

#selinuxtype=targeted #注释掉

selinux=disabled #增加

:wq! #保存退出

setenforce 0 #使配置立即生效

3. System Agreement

Software source code package storage location:/usr/local/src

Source code package compilation and installation location:/usr/local/ Software name

4. Download software package

1. Download nginx

http://nginx.org/download/nginx-1.10.2 .tar.gz

2. Download mysql

http://downloads.mysql.com/archives/get/file/mysql-5.5.52.tar.gz

3. Download php

http://cn2.php.net/distributions/php-5.5.38.tar.gz

4. Download pcre (supports nginx pseudo-static)

http://ftp.exim.llorien.org/pcre/pcre-8.39.tar.gz

5. Download openssl (nginx extension)

http://www .openssl.org/source/openssl-1.0.2j.tar.gz

6. Download zlib (nginx extension)

http://zlib.net/zlib-1.2.8. tar.gz

7. Download cmake (mysql compilation tool)

http://www.cmake.org/files/v3.6/cmake-3.6.2.tar.gz

8. Download libmcrypt (php extension)

http://nchc.dl.sourceforge.net/project/mcrypt/libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz

9. Download yasm (php extension)

http://www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz

10. t1lib (php extension)

ftp://sunsite.unc.edu/pub/linux/libs/graphics/t1lib-5.1.2.tar.gz

11. Download gd library installation package

https://bitbucket.org/libgd/gd-libgd/downloads/libgd-2.1.1.tar.gz

12, libvpx (required for gd library)

https://webm.googlecode.com/files/libvpx-v1.3.0.tar.bz2

13, tiff (required for gd library)

http:// download.osgeo.org/libtiff/tiff-4.0.6.tar.gz

14, libpng (required for gd library)

https://sourceforge.net/projects/libpng/files /libpng16/1.6.25/libpng-1.6.25.tar.gz

15, freetype (required for gd library)

http://ftp.twaren.net/unix/nongnu/ freetype/freetype-2.7.tar.gz

16, jpegsrc (required by gd library)

http://www.ijg.org/files/jpegsrc.v9b.tar.gz

Upload the above software packages to the /usr/local/src directory

5. Install the compilation tools

yum install apr* autoconf automake bison bzip2 bzip2* cloog -ppl compat* cpp curl curl-devel fontconfig fontconfig-devel freetype freetype* freetype-devel gcc gcc-c gtk -devel gd gettext gettext-devel glibc kernel kernel-headers keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng * libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc -devel libtool* libgomp libxml2 libxml2-devel libxpm* libx* libtiff libtiff* make mpfr ncurses* ntp openssl nasm nasm* openssl-devel patch pcre-devel perl php-common php -gd policycoreutils ppl telnet t1lib t1lib* wget zlib-devel

Installation Chapter

1. Install mysql

#1. Install cmake

cd /usr/local/src

tar zxvf cmake-3.6.2.tar.gz

cd cmake-3.6.2

./configure

make

make install

2. Install mysql

groupadd mysql #Add mysql group

useradd -g mysql mysql -s /bin/false #Create user mysql and join the mysql group. Mysql users are not allowed to log in to the system directly

mkdir -p /data/mysql #Create the mysql database storage directory

chown -r mysql:mysql /data/mysql #Set mysql database directory permissions

mkdir -p /usr/local/mysql #Create mysql installation directory

cd /usr /local/src

tar zxvf mysql-5.5.52.tar.gz #Unzip

cd mysql-5.5.52

cmake . -dcmake_install_prefix=/usr/local /mysql -dmysql_datadir=/data/mysql -dsysconfdir=/etc #Configuration

make #Compile

make install #Installation

cd /usr/local/mysql

cp ./support-files/my-huge.cnf /etc/my.cnf #Copy the configuration file (Note: If there is a my.cnf under the /etc directory by default, just overwrite it directly)

vi /etc/my.cnf #Edit the configuration file and add

datadir = /data/mysql #Add mysql database path in the [mysqld] section

:wq! #Save and exit

./scripts/mysql_install_db --user=mysql #Generate mysql system database

cp ./support-files/mysql.server /etc/rc.d/init.d/mysqld #Put mysql joins the system startup

chmod 755 /etc/init.d/mysqld #Increase execution permissions

chkconfig mysqld on #Join the boot startup

vi /etc/rc.d /init.d/mysqld #Edit

basedir=/usr/local/mysql #mysql program installation path

datadir=/data/mysql #mysql database storage directory

:wq! #Save and exit

service mysqld start #Start

vi /etc/profile #Add the mysql service to the system environment variable: add the following line at the end

export path=$path:/usr/local/mysql/bin

:wq! #Save and exit

source /etc/profile #Make the configuration take effect immediately

The following are The library file of myslq is linked to the default location of the system, so that you do not need to specify the library file address of mysql when compiling software such as php.

ln -s /usr/local/mysql/lib/mysql /usr/lib/mysql

ln -s /usr/local/mysql/include/mysql /usr/include/mysql

mkdir /var/lib/mysql #Create directory

ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #Add soft link

mysql_secure_installation #设置mysql密码,根据提示按y 回车输入2次密码

/usr/local/mysql/bin/mysqladmin -u root -p password "123456" #或者直接修改密码

到此,mysql安装完成!

二、安装nginx

1、安装pcre

cd /usr/local/src

mkdir /usr/local/pcre

tar zxvf pcre-8.39.tar.gz

cd pcre-8.39

./configure --prefix=/usr/local/pcre

make

make install

2、安装openssl

cd /usr/local/src

mkdir /usr/local/openssl

tar zxvf openssl-1.0.2j.tar.gz

cd openssl-1.0.2j

./config --prefix=/usr/local/openssl

make

make install

vi /etc/profile

export path=$path:/usr/local/openssl/bin

:wq!

source /etc/profile

3、安装zlib

cd /usr/local/src

mkdir /usr/local/zlib

tar zxvf zlib-1.2.8.tar.gz

cd zlib-1.2.8

./configure --prefix=/usr/local/zlib

make

make install

4、安装nginx

cd /usr/local/src

groupadd www

useradd -g www www -s /bin/false

cd /usr/local/src

tar zxvf nginx-1.10.2.tar.gz

cd nginx-1.10.2

./configure --prefix=/usr/local/nginx --without-http_memcached_module --user=www --group=www --with-http_stub_status_module --with-http_ssl_module --with-http_gzip_static_module --with-openssl=/usr/local/src/openssl-1.0.2j --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.39

注意:--with-openssl=/usr/local/src/openssl-1.0.2j --with-zlib=/usr/local/src/zlib-1.2.8 --with-pcre=/usr/local/src/pcre-8.39指向的是源码包解压的路径,而不是安装的路径,否则会报错

make

make install

/usr/local/nginx/sbin/nginx #启动nginx

设置nginx开机启动

vi /etc/rc.d/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: /usr/local/nginx/conf/nginx.conf

# pidfile: /usr/local/nginx/logs/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

make_dirs() {

# make required directories

user=`$nginx -v 2>&1 | grep "configure arguments:" | sed 's/[^*]*--user=\([^ ]*\).*/\1/g' -`

if [ -z "`grep $user /etc/passwd`" ]; then

useradd -m -s /bin/nologin $user

fi

options=`$nginx -v 2>&1 | grep 'configure arguments:'`

for opt in $options; do

if [ `echo $opt | grep '.*-temp-path'` ]; then

value=`echo $opt | cut -d "=" -f 2`

if [ ! -d "$value" ]; then

# echo "creating" $value

mkdir -p $value && chown -r $user $value

fi

fi

done

}

start() {

[ -x $nginx ] || exit 5

[ -f $nginx_conf_file ] || exit 6

make_dirs

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

}

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

:wq! #保存退出

chmod 775 /etc/rc.d/init.d/nginx #赋予文件执行权限

chkconfig nginx on #设置开机启动

/etc/rc.d/init.d/nginx restart #重启

在浏览器中打开服务器ip地址,会看到下面的界面,说明nginx安装成功。

系统运维 www.osyunwei.com 温馨提醒:qihang01原创内容©版权所有,转载请注明出处及原文链接

三、安装php

1、安装yasm

cd /usr/local/src

tar zxvf yasm-1.3.0.tar.gz

cd yasm-1.3.0

./configure

make

make install

2、安装libmcrypt

cd /usr/local/src

tar zxvf libmcrypt-2.5.8.tar.gz

cd libmcrypt-2.5.8

./configure

make

make install

3、安装libvpx

cd /usr/local/src

tar xvf libvpx-v1.3.0.tar.bz2

cd libvpx-v1.3.0

./configure --prefix=/usr/local/libvpx --enable-shared --enable-vp9

make

make install

4、安装tiff

cd /usr/local/src

tar zxvf tiff-4.0.6.tar.gz

cd tiff-4.0.6

./configure --prefix=/usr/local/tiff --enable-shared

make

make install

5、安装libpng

cd /usr/local/src

tar zxvf libpng-1.6.25.tar.gz

cd libpng-1.6.25

./configure --prefix=/usr/local/libpng --enable-shared

make

make install

6、安装freetype

cd /usr/local/src

tar zxvf freetype-2.7.tar.gz

cd freetype-2.7

./configure --prefix=/usr/local/freetype --enable-shared

make

make install

7、安装jpeg

cd /usr/local/src

tar zxvf jpegsrc.v9b.tar.gz

cd jpeg-9b

./configure --prefix=/usr/local/jpeg --enable-shared

make

make install

8、安装libgd

cd /usr/local/src

tar zxvf libgd-2.1.1.tar.gz #解压

cd libgd-2.1.1 #进入目录

./configure --prefix=/usr/local/libgd --enable-shared --with-jpeg=/usr/local/jpeg --with-png=/usr/local/libpng --with-freetype=/usr/local/freetype --with-fontconfig=/usr/local/freetype --with-xpm=/usr/ --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx

make #编译

make install #安装

9、安装t1lib

cd /usr/local/src

tar zxvf t1lib-5.1.2.tar.gz

cd t1lib-5.1.2

./configure --prefix=/usr/local/t1lib --enable-shared

make without_doc

make install

10、安装php

注意:如果系统是64位,请执行以下两条命令,否则安装php会出错(32位系统不需要执行)

\cp -frp /usr/lib64/libltdl.so* /usr/lib/

\cp -frp /usr/lib64/libxpm.so* /usr/lib/

cd /usr/local/src

tar -zvxf php-5.5.38.tar.gz

cd php-5.5.38

export ld_library_path=/usr/local/libgd/lib

./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --with-mysql=/usr/local/mysql --with-mysqli=/usr/local/mysql/bin/mysql_config --with-mysql-sock=/tmp/mysql.sock --with-pdo-mysql=/usr/local/mysql --with-gd=/usr/local/libgd --with-png-dir=/usr/local/libpng --with-jpeg-dir=/usr/local/jpeg --with-freetype-dir=/usr/local/freetype --with-xpm-dir=/usr/ --with-vpx-dir=/usr/local/libvpx/ --with-zlib-dir=/usr/local/zlib --with-t1lib=/usr/local/t1lib --with-iconv --enable-libxml --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-inline-optimization --enable-opcache --enable-mbregex --enable-fpm --enable-mbstring --enable-ftp --enable-gd-native-ttf --with-openssl --enable-pcntl --enable-sockets --with-xmlrpc --enable-zip --enable-soap --without-pear --with-gettext --enable-session --with-mcrypt --with-curl --enable-ctype

make #编译

make install #安装

cp php.ini-production /usr/local/php/etc/php.ini #复制php配置文件到安装目录

rm -rf /etc/php.ini #删除系统自带配置文件

ln -s /usr/local/php/etc/php.ini /etc/php.ini #添加软链接到 /etc目录

cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf #拷贝模板文件为php-fpm配置文件

ln -s /usr/local/php/etc/php-fpm.conf /etc/php-fpm.conf #添加软连接到 /etc目录

ln -s /usr/local/php/bin/php /usr/sbin/php #添加软连接到系统目录

ln -s /usr/local/php/bin/php /usr/bin/php #添加软连接到系统目录

vi /usr/local/php/etc/php-fpm.conf #编辑

user = www #设置php-fpm运行账号为www

group = www #设置php-fpm运行组为www

pid = run/php-fpm.pid #取消前面的分号

:wq! #保存退出

设置 php-fpm开机启动

cp /usr/local/src/php-5.5.38/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php-fpm #拷贝php-fpm到启动目录

chmod x /etc/rc.d/init.d/php-fpm #添加执行权限

chkconfig php-fpm on #设置开机启动

vi /usr/local/php/etc/php.ini #编辑配置文件

找到:disable_functions =

修改为:disable_functions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,stream_socket_server,escapeshellcmd,dll,popen,disk_free_space,checkdnsrr,checkdnsrr,getservbyname,getservbyport,disk_total_space,posix_ctermid,posix_get_last_error,posix_getcwd, posix_getegid,posix_geteuid,posix_getgid, posix_getgrgid,posix_getgrnam,posix_getgroups,posix_getlogin,posix_getpgid,posix_getpgrp,posix_getpid, posix_getppid,posix_getpwnam,posix_getpwuid, posix_getrlimit, posix_getsid,posix_getuid,posix_isatty, posix_kill,posix_mkfifo,posix_setegid,posix_seteuid,posix_setgid, posix_setpgid,posix_setsid,posix_setuid,posix_strerror,posix_times,posix_ttyname,posix_uname

#列出php可以禁用的函数,如果某些程序需要用到这个函数,可以删除,取消禁用。

找到:;date.timezone =

修改为:date.timezone = prc #设置时区

找到:expose_php = on

修改为:expose_php = off #禁止显示php版本的信息

找到:short_open_tag = off

修改为:short_open_tag = on #支持php短标签

找到opcache.enable=0

修改为opcache.enable=1 #php支持opcode缓存

找到:opcache.enable_cli=1 #php支持opcode缓存

修改为:opcache.enable_cli=0

在最后一行添加:zend_extension=opcache.so #开启opcode缓存功能

:wq! #保存退出

配置nginx支持php

vi /usr/local/nginx/conf/nginx.conf

修改/usr/local/nginx/conf/nginx.conf 配置文件,需做如下修改

user www www; #首行user去掉注释,修改nginx运行组为www www;必须与/usr/local/php/etc/php-fpm.conf中的user,group配置相同,否则php运行出错

index index.html index.htm index.php; #添加index.php

# pass the php scripts to fastcgi server listening on 127.0.0.1:9000

#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;

}

#取消fastcgi server部分location的注释,注意fastcgi_param行的参数,改为$document_root$fastcgi_script_name,或者使用绝对路径

/etc/init.d/nginx restart #重启nginx

service php-fpm start #启动php-fpm

测试篇

cd /usr/local/nginx/html/ #进入nginx默认网站根目录

rm -rf /usr/local/nginx/html/* #删除默认测试页

vi index.php #新建index.php文件

4513f8e7ecf9189a8af7e714c814a687

:wq! #保存退出

chown www.www /usr/local/nginx/html/ -r #设置目录所有者

chmod 700 /usr/local/nginx/html/ -r #设置目录权限

Open the server IP address in the browser

The above is the detailed content of How to compile and install Nginx+MySQL+PHP on CentOS. For more information, please follow other related articles on the PHP Chinese website!

Statement:
This article is reproduced at:yisu.com. If there is any infringement, please contact admin@php.cn delete