专栏首页bboysoullinux搭建lnmp+wordpress

linux搭建lnmp+wordpress

有人说程序员要少重复造轮子,没错,虽然搭建lnmp的文章网上很多,但是我就是要再写一遍,不服你打我呀

介绍

lnmp就是(linux,nginx,mysql,php或perl或python),至于我为什么喜欢lnmp而不是lamp,因为黑客军团有一集出现了nginx,而且我是用惯了nginx

软件安装

这个的话文章在我其他文章里,我就不重复写了。 linux 编译安装perl linux编译安装python linux编译安装php linux编译安装mysql5.7 linux 编译安装nginx linux编译安装apache

配置nginx

  • 首先启动一下nginx看看是不是已经安装正确了 /usr/local/nginx/sbin/nginx 然后浏览器访问树莓派地址,显示Welcome to nginx! 没错,安装成功了
  • 编辑nginx.conf vim nginx.conf 下面是默认的nginx配置文件
#user  nobody;
worker_processes  1;
#error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/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  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
    #gzip  on;
    server {
        listen       80;
        server_name  localhost;
        #charset koi8-r;
        #access_log  logs/host.access.log  main;
        location / {
            root   html;
            index  index.html index.htm;
        }
        #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;
        }
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    }
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    # 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;
    #    }
    #}
}

下面是我的nginx的配置文件,你可以看一下我的注释

#user  nobody;
#--这里设置的是运行用户,为了方便确认那就改成nginx用户nginx组好了
user nginx_user nginx_group;
#--前面是名为nginx_user的用户,后面是名为nginx_group的组
#--记住当你修改了这个选项之后要在系统中添加这个用户和用户组,并且修改用户所属组
#--groupadd nginx_group
#--useradd nginx_user
#--usermod -g nginx_group nginx_user
worker_processes  4;
#--上面的意思是启动进程,一般设置成和cpu数量相同,我的树莓派是4个核心的,我就设置成4了
#--如果你不知道cpu是几个核心的,你可以cat /proc/cpuinfo
#error_log  logs/error.log;
#--上面是设置错误日志的,一般就把他打开吧
error_log  logs/error.log;
#error_log  logs/error.log  notice;
#error_log  logs/error.log  info;
#pid        logs/nginx.pid;
#--上面一行是进程日志,打开吧
pid        logs/nginx.pid;
events {
    worker_connections  1024;
#--上面定义一个进程处理多少请求,就默认好了
#--epoll是多路复用IO(I/O Multiplexing)中的一种方式,
#--仅用于linux2.6以上内核,可以大大提高nginx的性能
    use   epoll;    
}
http {
#--设定mime类型,类型由mime.type文件定义,默认不用管
    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 记录了哪些用户,哪些页面以及用户浏览器、ip和其他的访问信息
#--可以打开,也可以不打开,我这种小机子就不打开了
    #access_log  logs/access.log  main;
    sendfile        on;
    #tcp_nopush     on;
    #keepalive_timeout  0;
    keepalive_timeout  65;
#--上面是连接超时时间
    #gzip  on;
#--打开gzip,用来压缩网页
    gzip  on;
#--接着把下面全部注释掉
#--打开nginx的虚拟主机功能
    include vhosts.d/*.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;
        #}
        #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;
        #}
        # proxy the PHP scripts to Apache listening on 127.0.0.1:80
        #
        #location ~ \.php$ {
        #    proxy_pass   http://127.0.0.1;
        #}
        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #
        #location ~ \.php$ {
        #    root           html;
        #    fastcgi_pass   127.0.0.1:9000;
        #    fastcgi_index  index.php;
        #    fastcgi_param  SCRIPT_FILENAME  /scripts$fastcgi_script_name;
        #    include        fastcgi_params;
        #}
        # deny access to .htaccess files, if Apache's document root
        # concurs with nginx's one
        #
        #location ~ /\.ht {
        #    deny  all;
        #}
    #}
    # another virtual host using mix of IP-, name-, and port-based configuration
    #
    #server {
    #    listen       8000;
    #    listen       somename:8080;
    #    server_name  somename  alias  another.alias;
    #    location / {
    #        root   html;
    #        index  index.html index.htm;
    #    }
    #}
    # 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;
    #    }
    #}
}
  • 刚才不是设置了虚拟主机嘛,现在配置虚拟主机文件 1.在配置文件夹下即/usr/local/nginx/conf建立vhosts.d文件夹 mkdir vhosts.d 2.建立wordpress.conf文件 touch wordpress.conf 其实文件名字你随便取没关系,但是文件后缀一定要是.conf 3.编辑wordpress.conf vim wordpress.conf 我的配置文件在下面,原理都在注释里面
#--建立一个服务器块
 server {
    server_name bboysoul.cn;
#--上面改成你的域名
    listen      80;
#--监听端口
    location / {
#--上面建立一个位置块
#--设置站点位置你要确认有这个文件
        root /www/wordpress;
#--设置首页
        index index.html index.php;
    }
#--位置块
    location ~ \.php$ {
#--把 php 后缀都重定向给 php-fpm 处理
        fastcgi_pass   127.0.0.1:9000;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /www/wordpress/$fastcgi_script_name;
        include        fastcgi_params;
    }
    access_log  /usr/local/nginx/logs/wordpress/wordpress_access.log;
#--访问日志
    error_log /usr/local/nginx/logs/wordpress/wordpress_error.log;
#--错误日志
 }
#--服务器块

注意我的站点目录是/www/wordpress下,所有的log文件和站点文件路径自己一定要注意好

配置php

修改php进程用户和用户组 vim /usr/local/php/etc/php-fpm.d/www.conf

; Unix user/group of processes
; Note: The user is mandatory. If the group is not set, the default user's group
;       will be used.
;--user = nobody
;--group = nobody
;--上面定义的是php-fpm进程的用户和用户组
user = nginx_user
group = nginx_group

测试

  • 现在呢,差不多可以打开网页装下逼了,先kill nginx的进程,和你会在修改配置文件时测试时候打开的php-fpm进程 用pidof这个命令找到两个进程的pid号,然后kill就好了 然后再打开 说了那么多就是重启两个进程
  • 之后修改站点目录的权限 chown -R nginx_user:nginx_user /www 弄个php探针测试一下 echo "<?php phpinfo(); ?>" >> /www/wordpress/index.php 然后访问就好了

配置mysql

  • 建立wordpress数据库 create database wpdb;

配置wordpress

  • 下载wordpress wget https://cn.wordpress.org/wordpress-4.7.2-zh_CN.tar.gz tar -zxvf wordpress-4.7.2-zh_CN.tar.gz 然后复制到站点目录 访问显示 您的PHP似乎没有安装运行WordPress所必需的MySQL扩展。 没错,因为我们用的是php7所以是没有mysql扩展的,不过我们可以安装 方法在这里https://my.oschina.net/u/1266171/blog/778939 用phpize的时候要有autoconf 还有可能环境不一样,所以上面这篇文章configure参数有点问题的 ./configure --with-php-config=/usr/local/php/bin/php-config --with-mysql=mysqlnd --with-mysql=/usr/local/mysql 这个是我的参数,就是加上了mysql路径 要注意的是你的php.ini的位置还有扩展文件夹的位置 之后你就可以像平时安装软件那样安装网站了,安装网站这种没有技术水平的事我就不说了

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 稳定工作和创业之间的抉择

    早上写的文章《回顾4180天在腾讯使用C#的历程,开启新的征途》是我在腾讯写的最后一篇对过往10年在腾讯使用C#语言的总结,今天收到反馈有人在造谣腾讯开始去.n...

    张善友
  • 红芯宣布完成 2.5 亿 C 轮融资,却被网友发现其浏览器安装包解压出 Chrome?

    PS:写前端都喜欢用Chrome浏览器,自从听说了,红芯渗透进了很多政府机关和大企业,我开始为里面做开发的前端工程师高兴了,因为他们在也不用担心ie的适配问题了...

    IT故事会
  • saltstack安装 原

    安装1:http://www.ttlsa.com/saltstack/install-saltstack-on-linux/

    尚浩宇
  • mycat安装使用 原

        github地址:https://github.com/MyCATApache/Mycat-Server/wiki

    尚浩宇
  • LVS高并发负载均衡实现 原

        LVS:LVS是Linux Virtual Server的简写,意即Linux虚拟服务器,是一个虚拟的服务器集群系统。本项目在1998年5月由章文嵩博士...

    尚浩宇
  • Linux中ln的用法

    ln是linux中一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接.当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目...

    小皇帝James
  • redis3.2.8 linux集群安装 原

    每台机器在opt/redis下创建一个文件夹,文件夹名称redis-cluster,在这个文件夹下面再创建三个文件夹6379、6380、6381,然后分别在这三...

    尚浩宇
  • gitlab bitnami 安装 原

    官方页面https://bitnami.com/stack/gitlab/installer

    尚浩宇
  • 回顾4180天在腾讯使用C#的历程,开启新的征途

    今天是2018年8月8日,已经和腾讯解除劳动关系,我的公司正式开始运营,虽然还有很多事情需要理清,公司官网也没有做,接下来什么事情都需要自己去完成了,需要一步一...

    张善友
  • 如何在Ubuntu上安装SELinux

    Ubuntu有一个类似于SELinux的强制访问控制系统,名为AppArmor。SELinux(Security-Enhanced Linux) 是美国国家安全...

    挺问中原

扫码关注云+社区

领取腾讯云代金券