Docker CentOS7 LNMP環境yum方式安裝

在Docker Centos7 安裝LNMP環境

運行一個全新centos的鏡像,並映射需要的端口。我這裏nginx用8081端口,數據庫用3308。

docker run -d --name d2o-ss2 -p 8081:8081 -p 3308:3306 -ti \
-h D2O-SS2 --privileged -e "container=docker" \
-v /sys/fs/cgroup:/sys/fs/cgroup centos /usr/sbin/init

進入容器

docker exec -it d2o-ss2 bash

修改時區,安裝基本工具,關閉firewalld。

timedatectl set-timezone Asia/Hong_Kong
yum install -y bind-utils net-tools htop mlocate initscripts.x86_64 
updatedb
systemctl stop firewalld 
systemctl mask firewalld 

添加Nginx
訪問nginx官網獲取最新yum源,地址爲:http://nginx.org/en/linux_packages.html

rpm -ivh http://nginx.org/packages/centos/7/noarch/RPMS/nginx-release-centos-7-0.el7.ngx.noarch.rpm

添加PHP5.6/PHP7

rpm -ivh https://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-6.noarch.rpm
rpm -ivh https://dl.iuscommunity.org/pub/ius/stable/CentOS/7/x86_64/ius-release-1.0-14.ius.centos7.noarch.rpm

加載MariaDB
官方沒提供rpm來直接導入,需要手動創建repo文件。

vi /etc/yum.repos.d/MariaDB.repo

插入repo文件內容

# MariaDB 10.1 CentOS repository list - created 2015-11-12 02:20 UTC
# http://mariadb.org/mariadb/repositories/
[mariadb]
name = MariaDB
baseurl = http://yum.mariadb.org/10.1/centos7-amd64
gpgkey=https://yum.mariadb.org/RPM-GPG-KEY-MariaDB
gpgcheck=1

執行yum install開始安裝PHP7

yum install MariaDB-server MariaDB-client nginx php70u-fpm php70u-gd php70u-json php70u-intl php70u-mbstring php70u-mcrypt php70u-mysqlnd php70u-opcache php70u-pdo php70u-pdo-dblib php70u-process php70u-pgsql php70u-recode php70u-xml php70u-xmlrpc php70u-cli

啓動軟件,並設置爲開機啓動

systemctl start nginx
systemctl start php-fpm
systemctl start mariadb

systemctl enable nginx
systemctl enable php-fpm
systemctl enable mariadb

設置默認MySQL/MariaDB密碼

mysqladmin -u root password ‘new-password’

請將 new-password 替換爲你的數據庫密碼

至此LNMPyum安裝就完成了,訪問 http://ip/ 應該可以看到nginx的起始頁。接下來需要配置一下php-fpm以便PHP正常工作。爲了方便nginxphp-fpm全部使用nginx權限來啓動。
修改php-fpm配置

vi /etc/php-fpm.d/www.conf

找到usergroup,修改爲nginx

user = nginx
group = nginx

修改nginx配置

vi /etc/nginx/nginx.conf

找到user改爲nginxworker_processes增大,支持多線程。

user nginx;
worker_processes 4;

重啓php-fpmnginx使之生效

systemctl restart php-fpm
systemctl restart nginx

最後示例配置,這個是開啓了僞靜態(URL重寫)的/etc/nginx/conf.d/default.conf

server {
    listen       8082;
    server_name  xxx.net;
    root   /var/www/Public;
    if (!-e $request_filename) {
        rewrite (.*) /index.php last;
    }
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }
    location ~ .*\.php$ {
        root           /var/www/Public;
        fastcgi_split_path_info ^(.+?\.php)(/.*)$;
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
}

退出到宿主機,封裝成鏡像。

docker commit d2o-ss2 d2okkk.net/d2o-ss2

感謝各位dalao 們

參考
http://www.cyberciti.biz/faq/centos-linux-6-7-changing-timezone-command-line/
https://sendya.me/archives/centos7-nginx-php-mariadb-mysql-install.html
http://blog.csdn.net/conupefox/article/details/49369035

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章