Maison > développement back-end > PHP7 > le corps du texte

Comment utiliser PHP7 pour créer un environnement LNMP sur MAC

醉折花枝作酒筹
Libérer: 2023-02-18 06:22:01
avant
1753 Les gens l'ont consulté

Cet article vous présentera comment utiliser php7 pour créer un environnement LNMP sur MAC. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il sera utile à tout le monde.

Comment utiliser PHP7 pour créer un environnement LNMP sur MAC

1. Installez MySQL :

Affichez les informations sur la version disponible de MySQL :

brew info mysql
Copier après la connexion

La version que je vois ici est 5.7.10 :

mysql: stable 5.7.10 (bottled)
Copier après la connexion

Installation suivante MySQL5.7.10 :

brew install mysql
Copier après la connexion

Une fois l'installation terminée, suivez les instructions pour placer le fichier plist dans ~/Library/LaunchAgents/ et chargez-le, puis configurez MySQL pour qu'il démarre à boot :

ln -sfv /usr/local/opt/mysql/*.plist ~/Library/LaunchAgents
Copier après la connexion

Démarrer MySQL :

mysql.server start
Copier après la connexion

Après le démarrage, puisque MySQL ne définit pas de mot de passe par défaut, vous devez définir le mot de passe root :

mysql -uroot -p
Copier après la connexion

Lorsque vous y êtes invité entrez le mot de passe, appuyez simplement sur Entrée pour vous connecter. , après vous être connecté à MySQL, l'invite est la suivante :

Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2
Server version: 5.7.10 Homebrew
Copier après la connexion

Ensuite, définissez le mot de passe root :

ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
Copier après la connexion

Lors de la définition du mot de passe, il Il est préférable de définir un mot de passe fort. Concernant les règles des mots de passe forts, les instructions officielles sont les suivantes :

Note
MySQL's validate_password plugin is installed by default. This will require that passwords contain at least one upper case letter, one lower case letter, one digit, and one special character, and that the total password length is at least 8 characters.
Copier après la connexion

Pour faciliter l'utilisation, nous créons souvent un utilisateur root pour toute connexion :

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'MyNewPass4!' WITH GRANT OPTION;
Copier après la connexion

Actualiser les autorisations pour que la commande prenne effet :

flush privileges;
Copier après la connexion

Quitter MySQL : exit ; PHP 7.1.0 -dev (cli) (construit : 4 février 2016 09:02:09) ( ZTS DEBUG ) Copyright (c) 1997-2016 Le groupe PHP Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies avec Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, par Zend Technologies Copiez le fichier de configuration mysql :

sudo cp /usr/local/Cellar/mysql/5.7.10/support-files/my-default.cnf /etc/my.cnf
Copier après la connexion

Ajoutez lower_case_table_names=1 après [mysqld] dans /etc/my.cnf, Redémarrez le service MYSQL, et le paramétrage a réussi : les noms de table ne sont pas sensibles à la casse ;

Détails du paramètre PS.lower_case_table_names : 0 : sensible à la casse, 1 : insensible à la casse

2. Installez php7 :

①, téléchargez php7 :

mkdir ~/php7 && cd ~/php7
git clone https://git.php.net/repository/php-src.git
Copier après la connexion

②, construisez php7 :

cd php-src
./buildconf
Copier après la connexion

③, compilez php :

PS If lors de la compilation de If. la mémoire est inférieure à 1G, veuillez ajouter à la fin : --disable-fileinfo,

Lors de l'installation de php7, vous devez installer re2c, bison, ffmpeg, mcrypt, libiconv, gd, openssl :

Installer re2c :

brew install re2c
Copier après la connexion

Installer bison (3.0.4) :

brew install bison
brew switch bison 3.0.4
brew link bison --force
sudo mv /usr/bin/bison /usr/bin/bison.orig
sudo ln -s /usr/local/bin/bison /usr/bin/bison
Copier après la connexion

Installer ffmpeg :

brew install ffmpeg
Copier après la connexion

Installer openssl :

brew install openssl
brew link openssl --force
Copier après la connexion

Installer mcrypt :

brew install mcrypt
Copier après la connexion

Installez libiconv :

brew install libiconv
Copier après la connexion

Si vous souhaitez utiliser openssl, vous venez d'installer openssl, mais le système est livré avec openssl, vous devez donc remplacer le propre openssl du système par celui installé openssl :

sudo ln -sf /usr/local/opt/openssl/bin/openssl /usr/bin/openssl
Copier après la connexion

Une fois le remplacement terminé, entrez la version openssl et vous pouvez voir qu'il s'agit de l'openssl installé avec Brew ci-dessus, car l'en-tête openssl est nécessaire pendant le processus de compilation de php, mais il n'est pas disponible lors de l'installation

Compilez php7 :

./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --bindir=/usr/local/php7/bin --sbindir=/usr/local/php7/sbin --includedir=/usr/local/php7/include --libdir=/usr/local/php7/lib/php --mandir=/usr/local/php7/php/man --with-config-file-path=/usr/local/php7/etc --enable-bcmath --enable-calendar --enable-debug --enable-exif --enable-fileinfo --enable-filter --enable-fpm --enable-ftp --enable-gd-jis-conv --enable-gd-native-ttf --enable-hash --enable-json --enable-libxml --enable-maintainer-zts --enable-mbregex --enable-mbstring --enable-mysqlnd --enable-opcache --enable-opcache-file --enable-pcntl --enable-pdo --enable-session --enable-shared --enable-shmop --enable-simplexml --enable-soap --enable-sockets --enable-sysvmsg --enable-sysvsem --enable-sysvshm --enable-wddx --enable-xml --enable-zip --with-bz2 --with-curl --with-fpm-user=www --with-fpm-group=www --with-freetype-dir=/usr --with-gd --with-gettext --with-gmp --with-iconv --with-jpeg-dir=/usr --with-mcrypt=/usr/include --with-mhash --with-mysql-sock=/var/lib/mysql/mysql.sock --with-mysqli=mysqlnd --with-pdo-mysql=mysqlnd --with-pear --with-png-dir=/usr --with-xmlrpc --with-zlib -with-libxml-dir=/usr
Copier après la connexion

Si lors de la compilation, le message s'affiche : Impossible de localiser le fichier d'en-tête libintl.h, veuillez effectuer les opérations suivantes :

①, installez gettext :

brew install gettext
Copier après la connexion

②, modifiez le fichier de configuration :

vi configure
Copier après la connexion

Recherchez le fichier suivant :

for i in $PHP_GETTEXT /usr/local /usr ; do
Copier après la connexion

Remplacez par :

for i in $PHP_GETTEXT /usr/local /usr /usr/local/opt/gettext; do
Copier après la connexion

Si une erreur openssl s'affiche, définissez le chemin sur openssl lors de la compilation,

--with-openssl=/usr/local/opt/openssl/
Copier après la connexion

④ Après l'exécution, compilez et installez :

make && make install
Copier après la connexion

Si vous essayez plusieurs méthodes et demandez une erreur SSL, ne le faites pas. ajoutez openssl lors de la compilation

⑤. Installation Une fois terminé, configurez php7 :

sudo ln -s /usr/local/php7/bin/php* /usr/bin/
sudo ln -s /usr/local/php7/sbin/php-fpm /usr/bin
cp php.ini-production /usr/local/php7/etc/php.ini
cp /usr/local/php7/etc/php-fpm.conf.default /usr/local/php7/etc/php-fpm.conf
sudo ln -s /usr/local/php7/etc/php.ini /etc/php.ini
sudo ln -s /usr/local/php7/etc/php-fpm.conf /etc/php-fpm.conf
cp /usr/local/php7/etc/php-fpm.d/www.conf.default /usr/local/php7/etc/php-fpm.d/www.conf
Copier après la connexion

Il y aura une invite une fois l'installation terminée :

You may want to add: /usr/local/php7/lib/php/php to your php.ini include_path
Copier après la connexion

Modifiez ensuite le php.ini,

vi /etc/php.ini
Copier après la connexion
Copier après la connexion

Trouver include_path dans php.ini Ajouter include_path :

include_path = "/usr/local/php7/lib/php/php"
Copier après la connexion

Voir la version php :

php -v
Copier après la connexion

Le résultat d'affichage est le suivant :

PHP 7.1.0-dev (cli) (built: Feb  4 2016 09:02:09) ( ZTS DEBUG )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
Copier après la connexion

Changer la configuration pour que php7 prenne en charge opcache. Une fois l'installation terminée, il affichera :

Installing shared extensions:     /usr/local/php7/lib/php/extensions/debug-zts-20151012/
Copier après la connexion

Ce chemin est le chemin du package d'extension, recherchez extension_dir et ajoutez le chemin juste à php.ini <. 🎜>

vi /etc/php.ini
Copier après la connexion
Copier après la connexion

Ajouter la configuration extension_dir au php.ini :

extension_dir = "/usr/local/php7/lib/php/extensions/debug-zts-20151012/"
Copier après la connexion

Activer l'extension opcache :

Trouver opcache dans php.ini, ajouter opcache.so

sudo mkdir -p /var/log/opcache
vi /etc/php.ini
Copier après la connexion

Référence opcache.so:

zend_extension=opcache.so
Copier après la connexion

et modifiez la configuration d'opcache :

opcache.enable=1opcache.enable_cli=1opcache.file_cache="/var/log/opcache/"
Copier après la connexion

Vérifiez maintenant les informations de version php, les résultats affichés sont les suivants :

PHP 7.1.0-dev (cli) (built: Feb  4 2016 09:02:09) ( ZTS DEBUG )
Copyright (c) 1997-2016 The PHP Group
Zend Engine v3.1.0-dev, Copyright (c) 1998-2016 Zend Technologies
    with Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, by Zend Technologies
Copier après la connexion

Maintenant que l'opcache L'extension a été ajoutée, modifiez la configuration de php-fpm :

vi /etc/php-fpm.conf
Copier après la connexion

Modifiez la configuration :

pid = run/php-fpm.pid
error_log = log/php-fpm.log
Copier après la connexion

Démarrez php-fpm :

php-fpm -D
Copier après la connexion

Cela provoquera deux avertissements :

[04-Feb-2016 09:45:25] NOTICE: [pool www] &#39;user&#39; directive is ignored when FPM is not running as root
[04-Feb-2016 09:45:25] NOTICE: [pool www] &#39;group&#39; directive is ignored when FPM is not running as root
Copier après la connexion

La commande pour arrêter php-fpm est la suivante :

kill -INT `cat /usr/local/php7/var/run/php-fpm.pid`
Copier après la connexion

Redémarrer php- La commande fpm est la suivante :

kill -USR2 `cat /usr/local/php7/var/run/php-fpm.pid`
Copier après la connexion

Ensuite, commencez à installer nginx :

3. Installez nginx :

brew install nginx
Copier après la connexion

Une fois l'installation de nginx terminée, le chemin racine par défaut est le suivant :

Le répertoire du fichier de configuration de

Docroot is: /usr/local/var/www
Copier après la connexion

nginx est le suivant :

/usr/local/etc/nginx/nginx.conf
Copier après la connexion

Le répertoire du site virtuel nginx est le suivant :

nginx will load all files in /usr/local/etc/nginx/servers/.
Copier après la connexion

Démarrez nginx au démarrage :

ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
Copier après la connexion

Démarrez nginx :

nginx
Copier après la connexion

nginx a besoin de l'autorisation root pour écouter le port 80. . Désormais, nginx écoute le port 8080 par défaut :

sudo chown root:wheel /usr/local/Cellar/nginx/1.8.1/bin/nginx
sudo chmod u+s /usr/local/Cellar/nginx/1.8.1/bin/nginx
Copier après la connexion

Pour configurer nginx, placez d'abord le fichier de configuration nginx sous /etc :

sudo ln -s /usr/local/etc/nginx/nginx.conf /etcsudo ln -s /usr/local/etc/nginx/servers /etc/nginxservers
Copier après la connexion

Modifiez le port d'écoute nginx :

sudo vi /etc/nginx.conf
Copier après la connexion

Modifiez le fichier de configuration comme suit :

#user  nobody;
worker_processes  4;
error_log  /usr/local/var/log/error.log;
error_log  /usr/local/var/log/error.log  notice;
error_log  /usr/local/var/log/error.log  info;
pid        /usr/local/var/run/nginx.pid;
events {
    worker_connections  1024;
}
http {
    include       mime.types;
    default_type  application/octet-stream;
    log_format  main  &#39;$remote_addr - $remote_user [$time_local] "$request" &#39;
                      &#39;$status $body_bytes_sent "$http_referer" &#39;
                      &#39;"$http_user_agent" "$http_x_forwarded_for"&#39;;
    access_log  /usr/local/var/log/access.log  main;
    port_in_redirect off;
    sendfile        on;
    tcp_nopush     on;
    keepalive_timeout  65;
    gzip  on;

    # HTTPS server
    #
    #server {
    #    listen       443 ssl;
    #    server_name  localhost;

    #    ssl_certificate      cert.pem;
    #    ssl_certificate_key  cert.key;

    #    ssl_session_cache    shared:SSL:1m;
    #    ssl_session_timeout  5m;

    #    ssl_ciphers  HIGH:!aNULL:!MD5;
    #    ssl_prefer_server_ciphers  on;

    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    include servers/*.conf;
}
Copier après la connexion

Créez ensuite default.conf sous /etc/nginxservers/, éditez default.conf, et ajoutez le contenu suivant :

server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
             # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
            location ~ \.php$ {
                fastcgi_pass   127.0.0.1:9000;
                fastcgi_index  index.php;
                fastcgi_intercept_errors    on;
                include /usr/local/etc/nginx/fastcgi.conf;
            }
        }
        #error_page  404              /404.html;
        # redirect server error pages to the static page /50x.html
        #
        error_page   500 502 503 504  /50x.html;
        location = /50x.html {
            root   html;
        }
        # deny access to .htaccess files, if Apache&#39;s document root
        # concurs with nginx&#39;s one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
Copier après la connexion
À ce stade, LNMP a été configuré. Redémarrez php-fpm et nginx.

Apprentissage recommandé :

Tutoriel vidéo php

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!

Étiquettes associées:
source:csdn.net
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal