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.
Affichez les informations sur la version disponible de MySQL :
brew info mysql
La version que je vois ici est 5.7.10 :
mysql: stable 5.7.10 (bottled)
Installation suivante MySQL5.7.10 :
brew install mysql
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
Démarrer MySQL :
mysql.server start
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
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
Ensuite, définissez le mot de passe root :
ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass4!';
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.
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;
Actualiser les autorisations pour que la commande prenne effet :
flush privileges;
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
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
mkdir ~/php7 && cd ~/php7 git clone https://git.php.net/repository/php-src.git
cd php-src ./buildconf
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
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
Installer ffmpeg :
brew install ffmpeg
Installer openssl :
brew install openssl brew link openssl --force
Installer mcrypt :
brew install mcrypt
Installez libiconv :
brew install libiconv
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
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
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
②, modifiez le fichier de configuration :
vi configure
Recherchez le fichier suivant :
for i in $PHP_GETTEXT /usr/local /usr ; do
Remplacez par :
for i in $PHP_GETTEXT /usr/local /usr /usr/local/opt/gettext; do
Si une erreur openssl s'affiche, définissez le chemin sur openssl lors de la compilation,
--with-openssl=/usr/local/opt/openssl/
make && make install
Si vous essayez plusieurs méthodes et demandez une erreur SSL, ne le faites pas. ajoutez openssl lors de la compilation
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
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
Modifiez ensuite le php.ini,
vi /etc/php.ini
Trouver include_path dans php.ini Ajouter include_path :
include_path = "/usr/local/php7/lib/php/php"
Voir la version php :
php -v
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
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/
Ce chemin est le chemin du package d'extension, recherchez extension_dir et ajoutez le chemin juste à php.ini <. 🎜>
vi /etc/php.ini
extension_dir = "/usr/local/php7/lib/php/extensions/debug-zts-20151012/"
sudo mkdir -p /var/log/opcache vi /etc/php.ini
zend_extension=opcache.so
opcache.enable=1opcache.enable_cli=1opcache.file_cache="/var/log/opcache/"
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
vi /etc/php-fpm.conf
pid = run/php-fpm.pid error_log = log/php-fpm.log
php-fpm -D
[04-Feb-2016 09:45:25] NOTICE: [pool www] 'user' directive is ignored when FPM is not running as root [04-Feb-2016 09:45:25] NOTICE: [pool www] 'group' directive is ignored when FPM is not running as root
kill -INT `cat /usr/local/php7/var/run/php-fpm.pid`
kill -USR2 `cat /usr/local/php7/var/run/php-fpm.pid`
3. Installez nginx :
brew install nginx
Le répertoire du fichier de configuration de
Docroot is: /usr/local/var/www
/usr/local/etc/nginx/nginx.conf
nginx will load all files in /usr/local/etc/nginx/servers/.
ln -sfv /usr/local/opt/nginx/*.plist ~/Library/LaunchAgents
nginx
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
sudo ln -s /usr/local/etc/nginx/nginx.conf /etcsudo ln -s /usr/local/etc/nginx/servers /etc/nginxservers
sudo vi /etc/nginx.conf
#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 '$remote_addr - $remote_user [$time_local] "$request" ' '$status $body_bytes_sent "$http_referer" ' '"$http_user_agent" "$http_x_forwarded_for"'; 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; }
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's document root # concurs with nginx's one # #location ~ /\.ht { # deny all; #} }
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!