ホームページ  >  記事  >  バックエンド開発  >  ソースコードによるLNMP環境構築の流れ(詳細)

ソースコードによるLNMP環境構築の流れ(詳細)

不言
不言オリジナル
2018-08-09 10:39:042473ブラウズ

この記事の内容は、LNMP による環境構築の過程をソースコード形式で記録したものです (詳細) 一定の参考価値がありますので、困っている方は参考にしていただければ幸いです。 。

LNMP は、Linux 上で PHP MYSQL NGIX を使用して Web サイトを構築するための環境を指します。

Nginx は、高性能 HTTP サーバー、リバース プロキシ サーバー、および IMAP/POP3/SMTP プロキシ サーバーです。 Nginx は Web サーバーとしてだけでなく、ロードバランサーとしても使用できます。

MySQL は、オープン ソースの無料データ ソフトウェアです。MySQL は、小規模なリレーショナル データベース管理システムです。サイズが小さく、速度が速く、総所有コストが低くなります。特にオープン ソースの特性により、 , 多くの中小規模の Web サイト Web サイトの総所有コストを削減するために、Web サイトのデータベースとして MySQL が選択されました.

PHP は、英語のハイパーテキスト前処理言語 Hypertext Preprocessor の略称です。 PHP は HTML 埋め込み言語です. サーバー側で実行され、HTML ドキュメントに埋め込まれるスクリプト言語です. ソースコードは C 言語で記述されているため、スタイルは C 言語に似ており、建築分野で広く使用されています。 Webサイト。

以下はLNMP環境の構築手順の記録であり、対象となるLinux環境はCentOsの仮想イメージです。

[Nginx インストール]

Nginx の最新の安定バージョンは 1.14.0 です。Web サイトのアドレスは http://nginx.org/en/download.html です。直接ダウンロードできます。 Windows では rz を Linux にアップロードするか、wget を使用して直接ダウンロードできますが、以下に示すダウンロード方法は後者です。

cd /usr/src          #一般将源码放在此目录下
wget http://nginx.org/download/nginx-1.14.0.tar.gz  #安装

注: nginx のインストールは zlib-devel pcre-devel openssl-devel パッケージに依存するため、nginx をインストールする前にこれらのパッケージをインストールする必要があります。インストールプロセス中。

yum -y install zlib-devel pcre-devel openssl-devel

...

一般的なソース コードのインストールは 4 つのステップに分かれています。 (tarコマンド)Precompile(ソースパッケージの下でconfigureを実行)、Compile(make)、コンパイルとインストール(make install)。

1. Unzip

tar -zxvf nginx-1.14.0.tar.gz   #这里解释下加压参数,z代表gzip(也就是后面的.gz文件)x代表加压,v表示显示详细信息,-f使用档案文件或设备(必选参数)


2. プリコンパイル

プリコンパイルするとき、通常、パラメーターは次の値を達成します。特定の機能を有効にする、または特定の機能を無効にするなど、インストールしたいエフェクト:

プリコンパイル用のソース パッケージ ディレクトリを入力します:

cd nginx-1.14.0
 ./configure --prefix=/data/webserver/nginx\   # 指定安装目录为/usr/local/nginx
--with-openssl=/usr/include/openssl\  # 启用ssl
--with-pcre\                          # 启用正规表达式
--with-http_stub_status_module        # 安装可以查看nginx状态的程序

…. ..

3.

./configure のコンパイルは、現在のディレクトリで

configure ファイルを実行することを意味します。コンパイルしてインストールできます:

make   #编译

....

4. インストール

make install #安装

.....

インストールが完了したら、対応するディレクトリに移動して、インストールされているファイルを表示できます。


ls /data/webserver/nginx

次に、nginx を起動できます:

/data/webserver/nginx/sbin/nginx   #启动nginx

/data/webserver/nginx/sbin/nginx -s stop #停止nginx

/data/webserver/nginx/sbin/nginx -s relaod #重启nginx


#ご覧のとおり画像では、nginx が起動しています


netstat -antlp ¦ grep 80  #nginx占用TCP的80端口由图也可知nginx已启动

[MySQL インストール]

この時点で、nginx がインストールされ、起動されています。 MySQL。同様に、最初に MySQL 依存関係パッケージをインストールする必要があります。:

yum -y install wget  cmake gcc gcc-c++ ncurses  ncurses-devel  libaio-devel  openssl openssl-devel

....

次に、ソース コードをダウンロードします。 :

wget https://dev.mysql.com/get/Downloads/MySQL-8.0/mysql-boost-8.0.11.tar.gz

.. ......

mysql ユーザーを作成します:

 groupadd mysql
 useradd -r -g mysql -s /bin/false mysql

インストール ディレクトリとデータ ディレクトリを作成します:

mkdir -p /usr/local/mysql
mkdir -p /data/mysql

ソース コード パッケージを解凍します:

 tar -zxf mysql-boost-8.0.11.tar.gz -C /usr/local

编译&安装:

cd /usr/local/mysql-8.0.11
cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql 
-DMYSQL_DATADIR=/usr/local/mysql/data 
-DSYSCONFDIR=/etc 
-DMYSQL_TCP_PORT=3306 
-DWITH_BOOST=/usr/local/mysql-8.0.11/boost 
make  && make install

安装成功后我们可启动mysql:

cd /usr/local/mysql
bin/mysqld_safe --user=mysql

启动成功,连接mysql

bin/mysql -uroot -p

此时要求输入连接密码,比较旧的版本的mysql安装时默认密码为空,但该5.7之后的版本有默认的密码,由于我们不知道,因此关闭mysql服务后(可直接查询进程根据进程号kill掉或/etc/init.d/mysql stop ),改用跳过密码的方式重新开启mysql服务。

bin/mysqld_safe --user=mysql & skip-grant-tables

重新连接

bin/mysql -uroot

连接成功后修改密码

mysql> UPDATE user SET Password=PASSWORD('newpassword') where USER='root';
mysql> FLUSH PRIVILEGES;

此时重启mysql服务,便可以账号密码方式连接mysql。

【PHP安装】

先安装php依赖包,否则在编译安装php7的过程当中会出现各种报错,安装完成后即可进入下一个环节。

安装扩展包并更新系统内核:

yum install epel-release -y
yum update

安装php依赖组件(包含Nginx依赖),前面nginx以及mysql安装过的可以忽略,也可以直接复制运行,会跳过已安装的依赖:

yum -y install wget vim pcre pcre-devel openssl openssl-devel libicu-devel 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 
ncurses ncurses-devel curl curl-devel krb5-devel libidn libidn-devel openldap openldap-devel nss_ldap jemalloc-devel 
cmake boost-devel bison automake libevent libevent-devel gd gd-devel libtool* libmcrypt libmcrypt-devel mcrypt mhash 
libxslt libxslt-devel readline readline-devel gmp gmp-devel libcurl libcurl-devel openjpeg-devel


........

创建用户和组,并下载php安装包解压:

cd /tmp
groupadd www
useradd -g www www
wget http://cn2.php.net/distributions/php-7.2.0.tar.gz
tar xvf php-7.2.1.tar.gz
cd php-7.2.0

设置变量并开始源码编译:

cp -frp /usr/lib64/libldap* /usr/lib/
./configure --prefix=/data/webserver/php \
--with-config-file-path=/data/webserver/php/etc \
--enable-fpm \
--with-fpm-user=www \
--with-fpm-group=www \
--enable-mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--enable-mysqlnd-compression-support \
--with-iconv-dir \
--with-freetype-dir \
--with-jpeg-dir \
--with-png-dir \
--with-zlib \
--with-libxml-dir \
--enable-xml \
--disable-rpath \
--enable-bcmath \
--enable-shmop \
--enable-sysvsem \
--enable-inline-optimization \
--with-curl \
--enable-mbregex \
--enable-mbstring \
--enable-intl \
--with-mcrypt \
--with-libmbfl \
--enable-ftp \
--with-gd \
--enable-gd-jis-conv \
--enable-gd-native-ttf \
--with-openssl \
--with-mhash \
--enable-pcntl \
--enable-sockets \
--with-xmlrpc \
--enable-zip \
--enable-soap \
--with-gettext \
--disable-fileinfo \
--enable-opcache \
--with-pear \
--enable-maintainer-zts \
--with-ldap=shared \
--without-gdbm \

开始安装

make -j 4 && make install

完成安装后配置php.ini文件:

cp php.ini-development /data/webserver/php/etc/php.ini
cp /data/webserver/php/etc/php-fpm.conf.default /data/webserver/php/etc/php-fpm.conf
cp /data/webserver/php/etc/php-fpm.d/www.conf.default /data/webserver/php/etc/php-fpm.d/www.conf

修改 php.ini 相关参数:

vim /data/webserver/php/etc/php.ini

expose_php = Off
short_open_tag = ON
max_execution_time = 300
max_input_time = 300
memory_limit = 128M
post_max_size = 32M
date.timezone = Asia/Shanghai
mbstring.func_overload=2

重启PHP,至此LNMP环境已搭建完成。

相关文章推荐:

Nginx配置fastcgi cache的方法介绍

docker安装php环境的实际操作步骤

以上がソースコードによるLNMP環境構築の流れ(詳細)の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。