首页 > 系统 > Linux > 正文
用自己的方式去搭建LAMP
2017-03-20       个评论    来源:地上马  
收藏    我要投稿

用自己的方式去搭建LAMP


安装操作系统

完成目标 ==> 安装完成一个Linux发行套件 (如:debian、centos等Linux操作系统)

系统版本 >> debian 8.7
PS: 一般情况下都是服务器商为我们安装的

配置网络

完成目标 ==> 让linux服务器能够上网

1.配置网络ip地址 ==> vi /etc/network/interfaces
[/etc/network/interfaces start]
    # This file describes the network interfaces available on your system
    # and how to activate them. For more information, see interfaces(5).

    source /etc/network/interfaces.d/*

    # The loopback network interface
    auto lo                 # 开机启动
    iface lo inet loopback

    # my wifi device
    auto wlan0              # wlan0 为无线网卡,  eth0 为有线网卡
    iface wlan0 inet static # static为静态, dhcp为动态
    address 192.168.1.102   # 静态ip地址
    netmask 255.255.255.0   # 子网掩码
    gateway 192.168.1.1     # 网关
    wpa-ssid ssidName       # 账户
    wpa-psk ssidPassword    # 密码
[end]

2.配置DNS ==> vi /etc/resolv.conf
[/etc/resolv.conf start]
    nameserver 114.114.114.114  # 首选DNS服务器地址
    nameserver 192.168.1.1  # 备用DNS服务器地址
[end]

3.启动服务
[/etc/init.d/networking start]
    启用无线网卡 => ifup wlan0       # ifdown wlan0 关闭无线网卡
    重启网络 ==> /etc/init.d/networking restart
[end]

PS:一般情况下服务器都自带网络

配置镜像源

完成目标 ==> 支持 apt-get下载软件

复制配置镜像源 ==> # cp /etc/apt/sources.list{,.backup}
配置镜像源 ==> # vi /etc/apt/sources.list

[/etc/apt/sources.list start]
    # 163镜像源 ==> http://mirrors.163.com/
    ------------
    deb http://mirrors.163.com/debian/ jessie main non-free contrib
    deb http://mirrors.163.com/debian/ jessie-updates main non-free contrib
    deb http://mirrors.163.com/debian/ jessie-backports main non-free contrib
    deb-src http://mirrors.163.com/debian/ jessie main non-free contrib
    deb-src http://mirrors.163.com/debian/ jessie-updates main non-free contrib
    deb-src http://mirrors.163.com/debian/ jessie-backports main non-free contrib
    deb http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
    deb-src http://mirrors.163.com/debian-security/ jessie/updates main non-free contrib
    ------------

    # apt-get update ==> 是同步源的索引,这样才能获取到最新的软件包。
    # apt-get upgrade ==> 系统将现有的Package升级,如果有相依性的问题,而此相依性需要安装其它新的
Package或影响到其它Package的相依性时,此Package就不会被升级,会保留下来.
    # apt-get dist-upgrade ==> 可以聪明的解决相依性的问题,如果有相依性问题,需要安装/移除新的Package,
就会试着去安装/移除它. (所以通常这个会被认为是有点风险的升级)
    # apt autoremove ==> 删除不需要的软件包及依赖包
    # apt-get --purge remove [packageName] ==> 删除已安装包(不保留配置文件)。
    # dpkg -l |grep "^rc"|awk '{print $2}' |xargs aptitude -y purge ==> 删除已经删除的软件包的残留配置文件
    # 查看debian版本 ==> $ lsb_release -a
    # 查看包 ==> dpkg -l | grep [packageName]
    # 查看包安装目录 ==> whereis [packageName]
    # 查看apt源中是否存在该包 ==> apt list [packageName]
[end]
PS:服务器一般都自带内网镜像

安装远程服务

完成目标 ==> 通过ssh客服端,远程管理该服务器

# apt-get install ssh

PS: 一般服务器已安装

以后我们就通过ssh客户端来控制该服务器


配置openssh-server

完成目标 ==> 让ssh配置更加安全

小常识:一台服务器的端口数有多少?
    -- 2^16 = 65536
    -- 端口号[0-65535]
    -- FTP、ssh推荐自定义端口,mysql推荐默认端口

2.ssh配置文件目录 ==> /etc/ssh/
# vi /etc/ssh/sshd_config
[/etc/ssh/sshd_config start]
    PermitRootLogin no  ## 设置是否允许root通过ssh登录
    PasswordAuthentication yes  ##设置是否允许口令验证
    PermitEmptyPasswords no  ## 设置是否允许用口令为空的帐号登录
    DenyGroups nossh  ## 禁止nossh用户群组登陆ssh
    DenyUsers testssh ## 禁止testssh用户登陆ssh
[end]

3.限制ip登陆ssh
# vi /etc/hosts.allow
    sshd: 192.168.1.3 168.68.68.68  ## 只允许2个主机ip登陆
# vi /etc/hosts.deny
    sshd : ALL  ## 禁止所有IP登陆

配置系统字符集编码

[# dpkg-reconfigure locales start]
    选择默认字符集 ==> zh_CN.UTF-8      
    PS:
        如果你的LANG环境变量是en_US.UTF-8,那么系统的菜单、程序的工具栏语言、输入法默认语言就都是英文的;
        如果你的LANG环境变量是zh_CN.UTF-8 或 zh_CN.gb18030,那么系统的菜单、程序的工具栏语言、输入法默认语言就都是中文的。
[end]

常用软件安装列表

# apt-get install vim ctags vim-doc vim-scripts
# apt-get install lrzsz  ==> 让Xshell支持 上传(rz)|下载(sz) 的包
# apt-get install zip unzip ==> 安装zip压缩与解压缩
# apt-get install p7zip-full  ==> 安装p7zip压缩与解压缩
     创建压缩包 ==> 7za a -t7z test.7z *,此命令将目录中的所有文件压缩到 test.7z 中。
     解开压缩包 ==> 7za x test.7z,此命令用于将 test.7z 中的文件提取出来。可使用 -t 来指明压缩格式

.vimrc配置

[/etc/vim/vimrc start]
    syntax on " 语法高亮
    set nocompatible " 不使用vi默认键盘布局   
    set cursorline " 突出显示当前行
    autocmd InsertLeave * se nocul " 用浅色高亮当前行
    autocmd InsertEnter * se cul " 用浅色高亮当前行
    set autoindent " 自动对齐
    set smartindent " 智能对齐
    set showmatch " 高亮显示匹配的括号 
    set matchtime=1  " 匹配括号高亮的时间(单位是十分之一秒)
    set ignorecase  " 搜索忽略大小写
    set linespace=0  " 字符间插入的像素行数目
    set iskeyword+=_,$,@,%,#,-  " 带有如下符号的单词不要被换行分割
    set backspace=2  " 使回格键(backspace)正常处理indent, eol, start等
    set whichwrap+=<,>,h,l  " 允许backspace和光标键跨越行边界
    filetype on  " 侦测文件类型 
    filetype plugin on  " 载入文件类型插件  
    filetype indent on  " 为特定文件类型载入相关缩进文件  
    set completeopt=longest,menu  "打开文件类型检测, 加了这句才可以用智能补全
    " 快捷输入
    " 自动完成括号和引号
    inoremap 1 ():let leavechar=")"i
    inoremap 2 []:let leavechar="]"i
    inoremap 3 {}:let leavechar="}"i
    inoremap 4 {o}:let leavechar="}"O
    inoremap q '':let leavechar="'"i
    inoremap w "":let leavechar='"'i
    set tabstop=4 "tab键为4个空格
    set shiftwidth=4 "换行时行间交错使用4个空格
    set softtabstop=4 "设置(软)制表符宽度为4
    set nobackup " 不要备份文件
    set noexpandtab " 不用space替代tab的输入 
    set showcmd " 输入的命令显示出来,看的清楚些
    set statusline=%F%m%r%h%w\ [格式=%{&ff}]\ [文件类型=%Y]\ [位置=%l,%v][%p%%]\ %{strftime(\"%d/%m/%y\ -\ %H:%M\")} "状态行显示的内容
    set laststatus=2 " 启动显示状态行(1),总是显示状态行(2)
    set laststatus=2 " 启动显示状态行(1),总是显示状态行(2)
    set foldenable " 允许折叠
    set foldmethod=manual " 手动折叠
    set completeopt=preview,menu  "代码补全
    set nobackup  "从不备份
    set helplang=cn  " 显示中文帮助
    set fencs=utf-8,gb18030,gbk,gb2312,cp936,ucs-bom,shift-jis
    set termencoding=utf-8
    set encoding=utf-8
    set fileencodings=utf-8,cp936,ucs-bom
    set fileencoding=utf-8
    """""""""""""""""""""""""
    """""新文件标题""""""""""
    "新建.php, .html, .css, .js文件,自动插入文件头
    autocmd BufNewFile *.php,*.html,*.css, *.js exec ":call SetTitle()"
    ""定义函数SetTitle,自动插入文件头
    func SetTitle()
    call setline(1, "/*************************************************************************")
    call append(line("."), " > File Name: ".expand("%"))
    call append(line(".")+1, " > Author: 地上马")
    call append(line(".")+2, " > Mail: linjialiang@163.com")
    call append(line(".")+3, " > Created Time: ".strftime("%c"))
    call append(line(".")+4, " ************************************************************************/")
    call append(line(".")+5, "")
    "新建文件后,自动定位到文件末尾
    autocmd BufNewFile * normal G
    endfunc
    """""""""""""""""""""""""""""""
    "键盘命令
    """""""""""""""""""""""""""""""
    nnoremap  :g/^\s*$/d "去空行
    nnoremap  :vert diffsplit "比较文件
    map  :tabnew "新建标签
    map  :tabnew . "列出当前目录文件
    map  \be "打开树状文件目录
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    " CTags的设定    
    """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    let Tlist_Sort_Type = "name"    " 按照名称排序    
    let Tlist_Use_Right_Window = 1  " 在右侧显示窗口    
    let Tlist_Compart_Format = 1    " 压缩方式    
    let Tlist_Exist_OnlyWindow = 1  " 如果只有一个buffer,kill窗口也kill掉buffer    
    let Tlist_File_Fold_Auto_Close = 0  " 不要关闭其他文件的tags    
    let Tlist_Enable_Fold_Column = 0    " 不要显示折叠树      
    "let Tlist_Show_One_File=1            "不同时显示多个文件的tag,只显示当前文件的  
    "设置tags    
    set tags=tags    
    "set autochdir
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""  
    "其他东东  
    """"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" 
    "默认打开Taglist  
    let Tlist_Auto_Open=1  
    """"""""""""""""""""""""""""""  
    " Tag list (ctags)  
    """"""""""""""""""""""""""""""""   
    let Tlist_Ctags_Cmd = '/usr/bin/ctags'   
    let Tlist_Show_One_File = 1 "不同时显示多个文件的tag,只显示当前文件的   
    let Tlist_Exit_OnlyWindow = 1 "如果taglist窗口是最后一个窗口,则退出vim   
    let Tlist_Use_Right_Window = 1 "在右侧窗口中显示taglist窗口  
    " minibufexpl插件的一般设置  
    let g:miniBufExplMapWindowNavVim = 1  
    let g:miniBufExplMapWindowNavArrows = 1  
    let g:miniBufExplMapCTabSwitchBufs = 1   
    let g:miniBufExplModSelTarget = 1  
[end]

搭建php服务环境

完成目标 ==> 实现我们所谓的LAMP/LNMP

# apt-get install php5 mariadb-server php5-mysql php5-gd phpmyadmin
    -- phpcms只需要这些既可;
    -- 安装过程中会让我们输入2次mariadb-server的root密码;
    -- phpmyadmin 选择apache2 
    -- 安装过程中会让我们输入3次phpmyadmin的密码;
查看版本
    -- php -v
    -- apt list mariadb-server 
    -- apache2 -v 
    -- apt list phpmyadmin

配置php

配置apache2

配置默认站点

要点1: 修改默认站点位置 [/etc/apache2/sites-enabled/000-default.conf]

# cp /etc/apache2/sites-enabled/000-default.conf{,.backup}
# vi /etc/apache2/sites-enabled/000-default.conf

# 找到
    ==> DocumentRoot /var/www/html
# 并修改成自己的目录
    ==> DocumentRoot /home/www-data
        -- 注意: [/home/www-data] 这个目录在apache2配置文件上没有开放,无法访问
        -- 新建FTP根目录 >> mkdir /home/www-data/
        -- FTP根目录访问权限 >> chmod 755 -R /home/www-data/ 
        -- 将FTP根目录配置成apache2用户和群组 >>  chown www-data:www-data -R /home/www-data/

要点2: 修改apache可访问目录 [/etc/apache2/apache2.conf]

# cp /etc/apache2/apache2.conf{,.backup}
# vi /etc/apache2/apache2.conf

# 将多余的可访问目录禁用掉
    只留下更目录的  ...  其余都注释掉
------

    Options FollowSymLinks
    AllowOverride None
    Require all denied

------

# 添加自己的网站目录
------

    Options Indexes FollowSymLinks
    AllowOverride all
    Require all granted
    Order allow,deny
    Allow from all

------

备注: 安全设置 phpcms (设置后不能正常使用,我又重新改成777)

    # 网站目录权限为755 网站文件权限为744,就可以了 这样比较安全
    find /home/www/phpcms/ -type f -exec chmod 644 {} \;  //设置文件权限为644
    find /home/www/phpcms/ -type d -exec chmod 755 {} \;  //设置目录权限为755
    设置完成后,再通过命令:chown root:root * -R 将目录和文件的所有者改为root。
配置虚拟主机
[/etc/apache2/ start]
    sites-available ==> 虚拟主机配置目录
    sites-enabled ==> 要使用的虚拟主机配置目录 (里面的文件都是sites-available的软连接)

    # 建立一个虚拟主机
        # cd /etc/apache2/sites-available
        # vi phpcms.com.conf ==> 以下是文件内容
------

        ServerName www.phpcms.com
        ServerAlias phpcms.com
        ServerAdmin linjialiang@163.com
        DocumentRoot /home/www/phpcms
        ErrorLog /home/www/log/phpcms.com-error.log
        CustomLog /home/www/log/phpcms.com-access.log combined

备注:目录要先创建,apache2无法创建目录
------
    停止站点 ==> # a2dissite default
    激活站点 ==> # a2ensite phpcms.com.conf (后缀是.conf)
    重启apache ==> # /etc/init.d/apache2 restart

[end]						
点击复制链接 与好友分享!回本站首页
上一篇:Linux云自动化运维第2课
下一篇:linux-raspbian出现疑似.bashrc文件异常
相关文章
图文推荐
文章
推荐
点击排行

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训
版权所有: 红黑联盟--致力于做实用的IT技术学习网站