Maison > Article > base de données > Comment compiler et installer Nginx+MySQL+PHP sur CentOS
Préparation
1. Configuration du pare-feu
centos 7.x utilise le pare-feu comme pare-feu par défaut, ici il est remplacé par le pare-feu iptables.
1. Fermez le pare-feu :
systemctl stop firewalld.service #Arrêter le pare-feu
systemctl désactiver firewalld.service #Désactiver le pare-feu du démarrage
2 Installer le pare-feu iptables
yum installer iptables-services #Installer
vi /. etc /sysconfig/iptables #Modifier le fichier de configuration du pare-feu
# exemple de configuration pour le service iptables
# vous pouvez le modifier manuellement ou utiliser system-config-firewall
# veuillez ne pas nous demander d'ajouter des ports/services supplémentaires à cette valeur par défaut configuration
*filtre
: acceptation d'entrée [0:0]
: acceptation avant [0:0]
: acceptation de sortie [0:0]
-une entrée -m état --état lié, établi - j accepte
-une entrée -p icmp -j accepte
-une entrée -i lo -j accepte
-une entrée -p tcp -m state --state new -m tcp --dport 22 -j accepte
-a input -p tcp -m state --state new -m tcp --dport 80 -j accept
-a input -p tcp -m state --state new -m tcp --dport 3306 -j accept
-a input -j rejeter --reject-with icmp-host-prohibited
-a forward -j rejeter --reject-with icmp-host-prohibited
commit
:wq #Enregistrer et quitter
systemctl ! restart iptables .service #Enfin, redémarrez le pare-feu pour que la configuration prenne effet
systemctl activate iptables.service #Définissez le pare-feu pour qu'il démarre au démarrage
/usr/libexec/iptables/iptables.init restart #Redémarrez le pare-feu
2. Désactivez selinux
vi /etc /selinux/config
#selinux=enforcing #Comment out
#selinuxtype=targeted #Comment out
selinux=disabled #Add
:wq #Enregistrez et quittez
!setenforce 0 #Faire en sorte que la configuration prenne effet immédiatement
trois, Accord système
Emplacement de stockage du package de code source du logiciel :/usr/local/src
Emplacement de compilation et d'installation du package de code source :/usr/local/Nom du logiciel
Quatre. Téléchargez le package logiciel
1. Téléchargez nginx
http://nginx.org/download/nginx-1.10.3.tar.gz
2. Téléchargez mysql
https://cdn. .mysql.com/archives/mysql-5.7/mysql-5.7.16. tar.gz
3. Téléchargez php
http://cn2.php.net/distributions/php-7.1.2.tar.gz
.4. Téléchargez cmake (outil de compilation mysql)
https://cmake .org/files/v3.7/cmake-3.7.2.tar.gz
5. Téléchargez pcre (prend en charge le pseudo-statique nginx)
ftp://ftp.csx.cam.ac.uk/pub/software/programmation/pcre/pcre-8.40.tar.gz
6. Téléchargez openssl (extension nginx)
https://www.openssl.org /source/openssl-1.1.0e.tar.gz
7. Téléchargez zlib (extension nginx)
http://www.zlib.net/zlib-1.2.11.tar.gz
8. php)
https://nchc.dl.sourceforge.net/project /mcrypt/libmcrypt/2.5.8/libmcrypt-2.5.8.tar.gz
9. Téléchargez yasm (extension php)
http : //www.tortall.net/projects/yasm/releases/yasm-1.3.0.tar.gz
10 t1lib (extension php)
http://download.freenas.org/distfiles/t1lib-5.1. 2.tar.gz
11. Téléchargez le package d'installation de la bibliothèque gd
https://github.com/libgd/libgd/releases/download/gd-2.1.1/libgd-2.1.1.tar.gz
12, libvpx (obligatoire pour la bibliothèque gd)
https://codeload.github.com /webmproject/libvpx/tar.gz/v1.3.0
13, tiff (obligatoire pour la bibliothèque gd)
http://download .osgeo.org/libtiff/tiff-4.0.7.tar.gz
14, libpng (obligatoire pour la bibliothèque gd)
ftp://ftp.simplesystems.org/pub/libpng/png/src/libpng16/libpng -1.6.28.tar.gz
15, freetype (obligatoire pour la bibliothèque gd)
http: //download.savannah.gnu.org/releases/freetype/freetype-2.7.1.tar.gz
16, jpegsrc (obligatoire pour la bibliothèque gd)
http://www.ijg.org/files/jpegsrc.v9b .tar.gz
17, boost (obligatoire pour compiler mysql)
https://ufpr.dl.sourceforge .net/project/boost/boost/1.59.0/boost_1_59_0.tar.gz
Le package logiciel ci-dessus est téléchargé dans le répertoire /usr/local/src
5. Installez les outils de compilation et les fichiers de bibliothèque (utilisez la commande yum à installer)
yum install -y 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 noyau glibc en-têtes du noyau keyutils keyutils-libs-devel krb5-devel libcom_err-devel libpng libpng-devel libjpeg* libsepol-devel libselinux-devel libstdc++-devel libtool* libgomp libxml2 libxml2-devel libxpm* libxml* libxaw-devel libxmu-devel libtif libtiff* make mpfr ncurses* ntp openssl openssl-devel patch pcre-devel perl php-common php-gd Policycoreutils telnet t1lib t1lib* nasm nasm * wget zlib-devel
Article d'installation
Ce qui suit est d'utiliser l'outil putty pour vous connecter à distance au serveur et opérer sous la ligne de commande
1 Installez mysql
1 Installez cmake
cd /usr/local /src
tar zxvf cmake-3.7.2.tar.gz
.cd cmake-3.7.2
./configure
make
make install
2. Installez mysql
cd /usr/local/src
mkdir -p /usr/local/boost
cp boost_1_59_0.tar.gz /usr/local/boost
groupadd mysql #Ajouter un groupe mysql
useradd -g mysql mysql -s /bin/false #Créez l'utilisateur mysql et rejoignez le groupe mysql. Les utilisateurs Mysql ne sont pas autorisés à se connecter directement au système
mkdir -p /data/mysql #Créez le répertoire de stockage de la base de données mysql.
chown -r mysql :mysql /data/mysql #Définir les autorisations du répertoire de stockage de la base de données mysql
mkdir -p /usr/local/mysql #Créer le répertoire d'installation mysql
cd /usr/local/src #Enter le répertoire de stockage des progiciels
tar zxvf mysql- 5.7.16.tar.gz #Extraire
cd mysql-5.7.16 #Entrer le répertoire
cmake -dcmake_install_prefix=/usr/local/mysql -dmysql_datadir=/data/. mysql -dwith_innobase_storage_engine=1 -ddefault_charset=utf8 -ddefault_collation =utf8_general_ci -dwith_embedded_server=off -dwith_boost=/usr/local/boost
Remarque : vous pouvez utiliser les paramètres -ddownload_boost=1 -dwith_boost=/usr/local/boost pour installer le package boost en ligne. Le serveur doit être connecté à Internet et le téléchargement peut échouer.
cmake . _moteur=1 - dwith_federated_storage_engine=1 -dwith_blackhole_storage_engine=1 -dwithout_example_storage_engine=1 -dwith_embedded_server=off -ddownload_boost=1 -dwith_boost=/usr/local/boost
make #Compile
make install #Install
Erreur de compilation, supprimez la compilation avant de refaire compilation Pour les fichiers en échec, les anciens fichiers objets et les informations du cache doivent être effacés lors de la recompilation.
make clean
rm -f cmakecache.txt
rm -rf /etc/my.cnf #Supprimer le fichier de configuration par défaut du système (s'il n'y a pas de fichier de configuration par défaut, pas besoin de le supprimer)
cd /usr /local/mysql #Entrez le répertoire d'installation de mysql
./bin/mysqld --user=mysql --initialize --basedir=/usr/local/mysql --datadir=/data/mysql #Générer la base de données système mysql
- -initialize signifie que le mot de passe par défaut est généré, --initialize-insecure signifie ne pas générer de mot de passe et le mot de passe est vide.
Voir cette ligne [note] un mot de passe temporaire est généré pour root@localhost : i>x18*=rav=7
cp /usr/local/mysql/support-files/my-default.cnf /usr/local / mysql/my.cnf
ln -s /usr/local/mysql/my.cnf /etc/my.cnf #Lien logiciel ajouté au répertoire /etc
cp /usr/local/mysql/support-files/ mysql .server /etc/rc.d/init.d/mysqld #Ajouter mysql au démarrage du système
chmod 755 /etc/init.d/mysqld #Ajouter des autorisations d'exécution
chkconfig mysqld sur #Ajouter au démarrage
vi / etc /rc.d/init.d/mysqld #Edit
basedir=/usr/local/mysql #chemin d'installation du programme mysql
datadir=/data/mysql #répertoire de stockage de la base de données mysql
:wq #Enregistrez et quittez
service mysqld start #Start
vi /etc/profile #Ajoutez le service mysql à la variable d'environnement système : ajoutez la ligne suivante à la fin
export path=$path:/usr/local/mysql/bin
: wq! # Enregistrez et quittez
source /etc/profile #Faites en sorte que la configuration prenne effet immédiatement
Les deux lignes suivantes relient le fichier de bibliothèque myslq à l'emplacement par défaut du système, afin que vous n'ayez pas besoin de spécifier l'adresse du fichier de bibliothèque mysql lors de la compilation de logiciels tels que 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 #Créer un répertoire
ln -s /tmp/mysql.sock /var/lib/mysql/mysql.sock #Ajouter un lien logiciel
mysql_secure_installation #Modifier le mot de passe mysql, entrez le mot de passe généré précédemment csjlm3dytg.d et appuyez sur Entrée, suivez les invites fonctionnent.
appuyez sur y|y pour oui, sur n'importe quelle autre touche pour non : y #Voulez-vous installer le plug-in de sécurité par mot de passe ? Choisissez y
il existe trois niveaux de politique de validation de mot de passe : #Il existe les options de force de mot de passe suivantes
longueur faible >= 8
longueur moyenne >= 8, numérique, casse mixte et caractères spéciaux
longueur forte >= 8, numérique, casse mixte, caractères spéciaux et fichier dictionnaire
veuillez saisir 0 = faible, 1 = moyen et 2 = fort : 0 #Sélectionnez 0, tant que 8 chiffres suffisent, sélectionnez 1 pour avoir des majuscules et lettres minuscules, caractères spéciaux, etc.
désinstaller le plugin validate_password; #Désinstaller le plugin de force de mot de passe
utiliser mysql;
mettre à jour mysql.user set ignition_string=password('123456') où user='root'; à la console MySQL pour modifier
modifier l'utilisateur 'root'@'localhost' identifié avec mysql_native_password comme '123456' /pcre
tar zxvf pcre-8.40.tar.gzcd pcre-8.40
./configure - -prefix=/usr/local/pcre
make
make install
2. Installez openssl
cd /usr/local/src
mkdir /usr/local/openssl
tar zxvf openssl-1.1.0e. tar.gz
cd openssl-1.1.0e
./config --prefix=/usr/local/ openssl
make
make install
vi /etc/profile
export path=$path:/usr /local/openssl/bin
:wq!
source /etc/profile
3. Installez zlib
cd /usr/local/src
mkdir /usr/local/zlib
tar zxvf zlib-1.2. 11.tar.gz
cd zlib-1.2.11
./configure --prefix=/usr/ local/zlib
make
make install
4 Installez nginx
.groupadd www
useradd -g www www -s /bin/false
cd /usr/local/src
tar zxvf nginx-1.10.3.tar.gz
cd nginx-1.10.3
./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.1.0e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.40
注意:--with-openssl=/usr/local/src/openssl-1.1.0e --with-zlib=/usr/local/src/zlib-1.2.11 --with-pcre=/usr/local/src/pcre-8.40指向的是源码包解压的路径,而不是安装的路径,否则会报错
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安装成功。
三、安装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 zxvf libvpx-1.3.0.tar.gz
cd libvpx-1.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.7.tar.gz
cd tiff-4.0.7
./configure --prefix=/usr/local/tiff --enable-shared
make
make install
5、安装libpng
cd /usr/local/src
tar zxvf libpng-1.6.28.tar.gz
cd libpng-1.6.28
./configure --prefix=/usr/local/libpng --enable-shared
make
make install
6、安装freetype
cd /usr/local/src
tar zxvf freetype-2.7.1.tar.gz
cd freetype-2.7.1
./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/lib64 --with-tiff=/usr/local/tiff --with-vpx=/usr/local/libvpx
make
make install
说明:如果libgd编译失败,可以先跳过,直接使用系统默认的2.1.0版本,在编译php的时候把参数--with-gd=/usr/local/libgd修改为--with-gd即可。
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会出错。
\cp -frp /usr/lib64/libltdl.so* /usr/lib/
\cp -frp /usr/lib64/libxpm.so* /usr/lib/
cd /usr/local/src
tar -zvxf php-7.1.2.tar.gz
cd php-7.1.2
export ld_library_path=/usr/local/libgd/lib
./configure --prefix=/usr/local/php --with-config-file-path=/usr/local/php/etc --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/lib64 --with-zlib-dir=/usr/local/zlib --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 --enable-mysqlnd
make #编译
make install #安装
说明:如果提示libgd版本错误,把php编译参数--with-gd=/usr/local/libgd修改为--with-gd即可。
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 #Ajoutez un lien symbolique vers le répertoire /etc
cp /usr/local/php/etc/php-fpm.conf. default / usr/local/php/etc/php-fpm.conf #Copiez le fichier modèle dans le fichier de configuration php-fpm
ln -s /usr/local/php/etc/php-fpm.conf /etc/php -fpm.conf #Ajouter un lien symbolique vers le répertoire /etc
vi /usr/local/php/etc/php-fpm.conf #Edit
pid = run/php-fpm.pid #Annuler le point-virgule précédent
:wq # Enregistrez et quittez
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
vi /usr/local /php/etc/php-fpm.d/www.conf #Edit
user = www #Définissez le compte en cours d'exécution php-fpm comme www
group = www #Définissez le groupe d'exécution php-fpm comme www
Définir php-fpm Démarrage
cp /usr/local/src/php-7.1.2/sapi/fpm/init.d.php-fpm /etc/rc.d/init.d/php- fpm #Copier php-fpm dans le répertoire de démarrage
chmod +x /etc/rc.d/init.d/php-fpm #Ajouter des autorisations d'exécution
chkconfig php-fpm sur #Définir le démarrage
vi /usr/local/ php/etc/php.ini #Modifier le fichier de configuration
Trouvé : désactiver_fonctions =
Modifier en : désactiver_fonctions = passthru,exec,system,chroot,scandir,chgrp,chown,shell_exec,proc_open,proc_get_status,ini_alter,ini_alter,ini_restore, dl, openlog, syslog, readlink, lien symbolique, popepassthru, stream_socket_server, escapeshellcmd, dll, popen, disk_free_space, checkdnsrr, checkdnsrr, getservbyname, getservbyport, disk_total_space, posix_ctermid, posix_get_last_error, posix_getegid, posix_geteuid, posix_getgid, , posix_getgrgid,pos ix_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, d, posix_setsid, posix_setuid, posix_strerror, posix_time s, posix_ttyname, posix_uname
# Liste les fonctions qui peuvent être désactivées en php, si certains programmes doivent utiliser cette fonction et peuvent être supprimés ou désactivés.
Trouvé : ;date.timezone =
Modifié en : date.timezone = prc #Définir le fuseau horaire
Trouvé : exposer_php = on
Modifié en : exposer_php = off #Supprimer l'affichage des informations de version php
Trouvé : short_open_tag = off
Modifié en : short_open_tag = on #Support php short tag
Find opcache.enable=0
Modifié en opcache.enable=1 #php prend en charge la mise en cache des opcodes
Trouvé :;opcache.enable_cli=1 #php prend en charge opcode Cache
Modifier vers : opcache.enable_cli=0
Ajouter dans la dernière ligne : zend_extension=opcache.so #Activer la fonction de mise en cache des opcodes
:wq #Enregistrer et quitter
Configurer nginx pour prendre en charge php
vi / usr/local/ nginx/conf/nginx.conf
Modifiez le fichier de configuration /usr/local/nginx/conf/nginx.conf et apportez les modifications suivantes
user www www; et modifiez le groupe en cours d'exécution nginx en www www ; Il doit être identique aux configurations d'utilisateur et de groupe dans /usr/local/php/etc/php-fpm.conf, sinon php ne fonctionnera pas correctement
index index.html index. htm index.php; #Ajouter index.php
# transmettre les scripts php au serveur fastcgi en écoute sur 127.0.0.1:9000
#
emplacement ~ .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;
}
#Décommentez l'emplacement de la partie serveur fastcgi, faites attention aux paramètres de la ligne fastcgi_param, modifiez-la vers $document_root$fastcgi_script_name, ou utilisez le chemin absolu
/etc/init.d/nginx restart #Restart nginx
service php-fpm start #Start php-fpm
Test section
cd /usr/local /nginx/html/ #Entrez le répertoire racine du site Web par défaut de nginx
rm -rf /usr/local /nginx/html/* #Supprimez la page de test par défaut
vi index.php #Créez un nouveau fichier index.php
< ;?php
phpinfo();
?>
:wq! #Enregistrez et quittez
chown www.www /usr/local/nginx/html/ -r #Définir le propriétaire du répertoire
chmod 700 /usr /local/nginx/html/ -r #Définir les autorisations du répertoire
Ouvrez l'adresse IP du serveur dans le navigateur, vous verrez l'interface suivante
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!