Maison >Opération et maintenance >exploitation et maintenance Linux >LAMP=Linux+Apache+Mysql+Php
1. Le service Internetwebgrand public actuel
service statique :
1.apache---petit et moyen -sized staticwebLe courant dominant des services, webLe grand frère du serveur
2 .nginx---Nouveau réseau statique à grande échelle web sert le grand public, webun veau nouveau-né dans le serveur
3 .lighttpd---staticweb Le service est tiède, ce qui signifie qu'il est progressivement éliminé La communauté n'est pas active. et l'efficacité est très élevée.
Services dynamiques :
1.IIS (Internet information services)---Serveur web de Microsoft (asp, aspx)
2.tomcat---Actualités PMEweb services grand public, Internetjavaconteneur grand public (jsp, faire )
3.resin---Grand site dynamiquewebService grand public, Internet javaconteneur mainstream (jsp, do)
4. php(fcgi)---grands, moyens et petits sites Web, php Conteneur d'analyse de programme
a. coopère avec apache, php n'est pas un démon, mais mod_php5.so(module)
b. coopère avec nginx, lighttpd, phpmode démon, FCGI mode.
2. Installation d'Apache
1.Assurez-vous d'abord d'installer httpd Service (yum install httpd -y)
OK : yum install gcc gcc++ zlib zlib-devel -y
2.Installer apache (adresse Site Web de Shangguan)
apache Compilation du code source :
./configure --prefix=/application/apache2.2.32
--enable-expires
--enable-headers
--enable-modules=most
--enable-so
--with-mpm=worker
--enable-deflate
--enable-rewrite
make &&make install
3.Démarrez le service apache :
1) Vérifiez si la syntaxe apache est réalisable : [root@localhost local]# /application/apache/bin/apachectl -t
2) Démarrez le service apache : [root@localhost local]# /application/apache/bin/apachectl start
3) Vérifiez si le service apache est démarré : lsof -i:80 ou ps -ef|grep apache
ça marche indique le succès
Si ce n'est pas ok vérifiez les ports, le pare-feu, selinux, traitez la commande
strace pour tracer le processus
Modifiez le contenu compilé sous /application/apache/htdocs/ et il y a index.html
3./application/apacheStructure des répertoires
optimisation Apache 1. Mettre root@ localhost conf]# vi Ajoutez un signe - devant l'index dans httpd.conf ou supprimez-le directement
/application/apache/conf/extra Trois fichiers clés
Hôte virtuel
1. Hôte virtuel : lors du déploiement de plusieurs sites, chaque site souhaite utiliser un nom de domaine et un répertoire de site différents, ou un port différent, ou une IP différente. Un hôte virtuel est requis. .
En un mot, pour configurer plusieurs sites pour un service http, une machine virtuelle est nécessaire.
Classification des machines virtuelles :
a. Basée sur le nom de domaine
b. 🎜>IP
2. Construire une machine virtuelle (basée sur le nom de domaine)
Nom de domainewww.etiantian.org
/ var/html/wwwblog.etiantian.org /var/html/blogbbs.etiantian.org /var/html/bbs
Créer un fichier de page d'accueil :[root@localhost apache]# mkdir /var/html/{www,blog,bbs} -p
[root@localhost apache]# touch /var/html/{www, blog,bbs}/index.html[root@localhost apache]# pour le nom dans www blog bbs;do echo "http://$name.etiantian.org" >/var/html/$ name/index.html;done[root@localhost apache]# pour le nom dans le blog www bbs;do cat /var/html/$name/index.html;done vim /application/apache/conf/extra/httpd-vhosts.confCustomLog "logs/www-access_log" commun
[root@localhost extra]# /application/apache /bin/apachectl -t
Syntaxe OK
Vérifier la syntaxe
[root@localhost extra]# /application/apache/bin/apachectl Graceful Redémarrer Apache
vim /application/apache/conf/httpd.conf Ajoutez le contenu suivant à la dernière ligne :
Options FollowSymLinks
AllowOverride Aucun
Ordre autoriser, refuser
Autoriser de tous
La configuration ci-dessus vise à éviter les erreurs 403, puis à vérifier si la syntaxe est incorrecte (s'il y a des erreurs, cochez
Modifier Windows local system32 conduit les hôtes (192.168.76.128 www.etiantian.org blog.etiantian.org bbs.etiantian.org
)
[root@localhost extra]# grep "^Include" / application/apache/conf/httpd.conf
Inclure conf/extra/httpd-mpm.conf
Inclure conf/extra/httpd-vhosts.conf
1. mysql
Créer mysql : useradd mysql -g mysql -M -s /sbin/nologin
Compilation de
mysql :
./configure --prefix=/application/mysql5.1.72
- -with-unix-socket-path =/application/mysql5.1.72/tmp/mysql.sock
--localstatedir=/application/mysql5.1.72/data
--enable-assembler
-- activer-thread-safe-client
--with-mysqld-user=mysql
--with-big-tables
- -sans-debug
--with-pthread
--enable-assembler
--with-extra-charsets=complex
--avec -readline
--with-ssl
--with-embedded-server
--enable-local-infile
--with-plugins =partition,innobase
--with-mysqld-ldflags=-all-static
--with-client-ldflags=-all-static
yum -y install ncurses-devel(Solution d'erreur)
application root@localhost]# cd /home/cai/tools/
[root@localhost tools ]# cd mysql-5.1.72/support-files/
[root@localhost support-files]# cp my-small.cnf /etc/my.cnf
cp : s'il faut écraser "/etc/my.cnf" " ? y
[root@localhost support-files]# cd /etc/
[root@localhost etc]# moins my.cnf
[root@localhost etc]# mkdir /application/mysql/date -p
[root@localhost etc]# chown -R mysql.mysql /application/mysql
[root@localhost etc]#/application/mysql/ bin/mysql_install_db --basedir=/application/mysql --datadir=/application/mysql/data/ --user=mysql
Installation des tables système MySQL...
170314 20:15 :22 [Avertissement] '--skip-locking' est obsolète et sera supprimé dans une prochaine version. Veuillez utiliser '--skip-external-locking' à la place.
OK
Remplissage. tables d'aide...
170314 20:15:22 [Avertissement] '--skip-locking' est obsolète et sera supprimé dans une prochaine version. Veuillez utiliser '--skip-external-locking' à la place. .
OK
Pour démarrer mysqld au démarrage, vous devez copier
support-files/mysql.server au bon endroit pour votre système
N'oubliez pas de définir un mot de passe pour l'utilisateur root MySQL !
Pour cela, démarrez le serveur, puis exécutez les commandes suivantes :
/application/mysql/bin/mysqladmin -u root password 'nouveau-mot de passe'
/application/mysql/bin/mysqladmin -u root -h localhost.localdomain password 'nouveau-mot de passe ' '
Vous pouvez également exécuter :
/application/mysql/bin/mysql_secure_installation
qui vous donnera également la possibilité de supprimer le test
Bases de données et utilisateur anonyme créés par défaut.
Fortement recommandé pour les serveurs de production.
Voir le manuel pour plus d'instructions.
Vous pouvez démarrer le démon MySQL avec :
cd /application/mysql /application/mysql/bin/mysqld_safe &
Vous pouvez tester le démon MySQL avec mysql-test-run.pl
cd /application/mysql/mysql-test ; perl mysql-test-run.pl
Veuillez signaler tout problème avec le script /application/mysql/scripts/mysqlbug !
Démarrer
mysql:/application /mysql/bin/ mysqld_safe & (Lors du démarrage du service, veuillez l'ajouter au démarrage automatique au démarrage) [root@localhost support-files]# netstat -lntup|grep mysql (Confirmez si le service est démarré)
Ajouter la ligne utilisateur à la fin de vi /etc/profile
Fermer :
arrêt de mysqladmin
/application/mysql/bin/ mysqladmin -u root -h localhost.localdomain password 'new-password' Définir le mot de passe
mysql -uroot -p (méthode pour se connecter à mysql après avoir défini le mot de passe)
2.
phpapache==》
libphp5.so sous phpLAMP
nginx php==》fcgi php-
yum -y install 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 bzip2 bzip2-devel ncurses ncurses-devel curl curl-devel e2fsprogs e2fsprogs-devel krb5 krb5-devel libidn -devel s'ouvre sl openssl-devel openldap openldap-devel nss_ldap openldap-clients openldap-servers(Diverses bibliothèques qui doivent être installées)
yum install zlib libxml libjpeg freetype libpng gd curl libiconv zlib-devel libxml2-devel libjpeg-devel freetype-devel libpng-devel gd-devel curl-devel -y (dans oldboy)
bibliothèque libiconv requise (compiler et installer)
compilation php :
./configure
--prefix=/application/php5.3.27
--with-apxs2 =/ application/apache/bin/apxs
--with-mysql=/application/mysql
--with-xmlrpc
--with-openssl
--with-zlib
--with-freetype-dir
--with-gd
--with-jpeg-dir
- -with-png-dir
--with-iconv=/usr/local/libiconv
--enable-short-tags
--enable-sockets
--enable-zend-multibyte
--enable-soap
--enable-mbstring
--enable-static
--enable-gd-native-ttf
--with-curl
--with-xsl
--enable-ftp
-- with-libxml-dir
[root@localhost php]# ll /application/apache/modules/
Utilisation totale 23908
-rw-r--r-- 1 racine racine 9262 15 avril 09:27 httpd.exp
-rwxr-xr-x 1 racine racine 24465701 15 avril 10:15 libphp5.so
[root@localhost php]# grep libphp5 /application/apache/conf/httpd.conf
LoadModule php5_module modules/libphp5.so
Fichier Configurationphp :
Il y en a deux, L'un est l'environnement de production L'autre est l'environnement de développement (environnement de test)
[root@localhost php-5.3.27]# diff php.ini-development php.ini -production
[root@localhost php-5.3.27]# cp php.ini-production /application/php/lib/php.ini
Résumé : les fichiers de configuration formels sont généralement affiché horsLOG, ne pas afficher LOG
Configurationapache prend en charge php
vim /application/apache/conf/httpd. conf Modifier la ligne 98 ServerName 192.168.76.128 : 80
vim /application/apache/conf/httpd.conf Ajouter deux lignes sous la ligne 311
Application AddType/ x-httpd-php .php .phtml
Application AddType/x-httpd-php-source .phps
démon utilisateur Il devrait également être modifié par les autres du bas (tout le monde sait que la valeur par défaut doit être modifiée)
la ligne 166 est modifiée en
[root @localhost conf]# diff httpd.conf httpd.conf.ori
67,68c67,68
< Groupe www --- > Démon utilisateur > Démon de groupe 168c168 < index.html --- > DirectoryIndex index.html 320,321d319 < .phtml Ajouterutilisateur www : useradd www -s /sbin /nologin -M [root@localhost conf]# /application/apache/bin/apachectl graceful Redémarrer le service Apache Test php dans la machine virtuelle construite avant/ var/html/blog vi index.php [root@localhost blog]# cat index.php phpinfo( ; apache réussi vi /var/html/blog/index.php //$link_id=mysql_connect('hostname','user','password'); $link_id=mysql_connect ( 'localhost','root','oldboy123') ou mysql_error(); if($link_id){ echo "mysql réussi par oldboy !" }else{ echo mysql_error(); } ?> L'interface supérieure indique que mysql réussit 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!