Ubuntu LAMP

Ubuntu LAMP 环境搭建

LAMP工作原理

LINUX+APACHE+MYSQL+PHP

  • 先是用户在浏览器中输入网址,也就是域名。
  • 然后用户计算机上的DNS服务器把域名解析成IP地址,然后通过HTTP或者HTTPS请求找到了存储网站文件的服务器。
  • 然后来到Apache服务器这里,Apache服务器里有很多可扩展的模块,里面有一个“libphp5.so”的模块可以指挥PHP的解释器干活。libphp5.so模块是apache支持php的模块
  • 然后PHP看看是否要对MySQL数据进行CURD操作,如果需要就通过mysql_connect(‘连接服务器的地址‘,‘连接的使用用户,一般为root’,‘对应用户的密码’);(CURD = create(创建) + update(更新) + read(读取) + 删除(delete))
  • MySQL把数据返回给PHP后,PHP再把数据返回个Apache服务器,然后Apache服务器就把内容呈现给浏览用户。

安装 apache 服务器

sudo apt-get install apache2
apache2 -v

出现收下的信息说明安装成功

Server version: Apache/2.4.18 (Ubuntu)
Server built:   2017-09-18T15:09:02

启动服务

sudo /etc/init.d/apache2 start

访问localhost进行测试

如果出现上述的画面说明已经成功了!

安装 php5

sudo add-apt-repository ppa:ondrej/php
sudo apt-get update
sudo apt-get install php5.6

使用php -v

检测模块libphp5.so

  • 重启apache2服务

    sudo /etc/init.d/apache2 restart
  • 查看libphp5.6.so模块是自动加载
     [email protected]  ~  cat /etc/apache2/mods-enabled/php5.6.load
    # Conflicts: php5
    # Depends: mpm_prefork
    LoadModule php5_module /usr/lib/apache2/modules/libphp5.6.so

    说明apache2已经自动加载了模块

安装 MySQL

sudo apt-get install mysql-server

安装 php mysql 扩展

sudo apt-get install php5.6-mysql

检测扩展模块是否加载

 [email protected]  ~  cat /etc/php/5.6/mods-available/mysql.ini
; configuration for php mysql module
; priority=20
extension=mysql.so

为了确保全部组件正常工作,重启mysql和apache2服务

 [email protected]  ~  service mysql restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'mysql.service'.
Authenticating as: whoami,,, (whoami)
Password:
==== AUTHENTICATION COMPLETE ===
 [email protected]  ~  service apache2 restart
==== AUTHENTICATING FOR org.freedesktop.systemd1.manage-units ===
Authentication is required to restart 'apache2.service'.
Authenticating as: whoami,,, (whoami)
Password:
==== AUTHENTICATION COMPLETE ===

当然上述的所有组件可以使用以下的命令进行安装:

sudo tasksel install lamp-server

创建php info探针

sudo cd /var/www/html
sudo vim info.php

文件内容如下:

<?php
    echo mysql_connect('localhost','root','123456')? 'successfully': 'failed';
    phpinfo();
?>

测试显示信息为successfully

给PHP添加常用扩展

$sudo apt-get install php5.6-gd curl libcurl3 libcurl4-openssl-dev php5.6-curl

访问探针页面可以看到gd模块被成功加载了如下:

LAMP 配置目录概述

apache2mysqlphp各自的配置目录如下:

/etc
├── apache2
├── mysql
└── php

apache2 配置

使用tree查看其配置目录结构如下:

从上可以看到几个高频词汇如下:

mods-*** 存放Apache模块配置文件

sites-*** 存放虚拟主机的配置文件

available 表示可以使用

enabled 表示已启用的

其中enabled中存放的是指向available目录中配置文件的软链接:

 [email protected]  /etc/apache2  tree -L 1 mods-enabled
mods-enabled
├── access_compat.load -> ../mods-available/access_compat.load
├── alias.conf -> ../mods-available/alias.conf
├── alias.load -> ../mods-available/alias.load
├── auth_basic.load -> ../mods-available/auth_basic.load
├── authn_core.load -> ../mods-available/authn_core.load
├── authn_file.load -> ../mods-available/authn_file.load
├── authz_core.load -> ../mods-available/authz_core.load
├── authz_host.load -> ../mods-available/authz_host.load
├── authz_user.load -> ../mods-available/authz_user.load
├── autoindex.conf -> ../mods-available/autoindex.conf
├── autoindex.load -> ../mods-available/autoindex.load
├── deflate.conf -> ../mods-available/deflate.conf
├── deflate.load -> ../mods-available/deflate.load
├── dir.conf -> ../mods-available/dir.conf
├── dir.load -> ../mods-available/dir.load
├── env.load -> ../mods-available/env.load
。。。。。。

这样带来的好处是,不会加载不必要的模块,避免浪费;同时配置文件也存放有序!

apache2配置文件的加载流程如下:


Apache Virtual-Host 配置

  • 原理概述

一台服务器上放置多个完全独立的网站,虚拟主机就是通过Apache来分辨出来访的二级域名。通过识别来分别访问各各目录下的站点。

虚拟主机的应用场景:
假设慕课网开发了三个系统,分别是:视频系统、论坛系统和办公系统 慕课网有个一级域名 imooc.com,现在给这三个系统分别配置二级域名video.imooc.com bbs.imooc.com oa.imooc.com

假设慕课网有台lamp服务器,在文件系统中分别建立了三个目录(对应三个系统,论坛,办公,视频系统),分别用于存放这三个系统的项目文件,这三个目录可以由我们任意建立,配置DNS把这三个二级域名都解析到这台服务器上,也就是让三个二级域名都指向同一个服务器ip,让Apache来区分用户是通过哪个二级域名访问这台服务器的 根据不同的二级域名访问对应项目所在的目录,也就是说一台服务器上可以同时放置多个完全独立的网站或者系统,用不同的域名访问对应的系统。

将三个域名解析为相同的地址那是DNS服务器的任务,而分析请求响应以不同的页面才是Apache的任务。

在个人电脑上是可以修改hosts文件以代替DNS服务的作用的:

  • Linux或者Mac在/etc/hosts
  • Windows在C:\Windows\System32\drivers\etc\host

  • 接下来在创建目录mkdir -p /wwwroot/{video,bbs,os}以表示三个不同的网站
 [email protected]  /var  sudo mkdir -vp /wwwroot/{video,bbs,os}
mkdir: created directory '/wwwroot'
mkdir: created directory '/wwwroot/video'
mkdir: created directory '/wwwroot/bbs'
mkdir: created directory '/wwwroot/os'
 [email protected]  /var  tree /wwwroot
/wwwroot
├── bbs
├── os
└── video

3 directories, 0 files

创建三个index.html

 [email protected]  /wwwroot  sudo touch {video/,bbs/,os/}index.html
 [email protected]  /wwwroot  tree .
.
├── bbs
│?? └── index.html
├── os
│?? └── index.html
└── video
    └── index.html

3 directories, 3 files

分别编辑如下:


  • 虚拟主机配置

进入可用虚拟主机配置目录cd /etc/apache2/sites-available

 [email protected]  /etc/apache2/sites-available  ll
total 12
-rw-r--r-- 1 root root 1332 3月  19  2016 000-default.conf
-rw-r--r-- 1 root root 6338 4月   6  2016 default-ssl.conf
 [email protected]  /etc/apache2/sites-available  cat 000-default.conf
<VirtualHost *:80>
    #ServerName www.example.com

    ServerAdmin [email protected]
    DocumentRoot /var/www/html

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

# vim: syntax=apache ts=4 sw=4 sts=4 sr noet

这里存放在服务器域名的一套寻址规则,ServerName是接受到的域名,DoucumentRoot对应的就是该域名;将默认的配置文件复制三份

 [email protected]  /etc/apache2/sites-available  ll --sort=time
total 24
-rw-r--r-- 1 root root 1332 1月  20 20:26 os.conf
-rw-r--r-- 1 root root 1332 1月  20 20:26 bbs.conf
-rw-r--r-- 1 root root 1332 1月  20 20:25 video.conf
-rw-r--r-- 1 root root 6338 4月   6  2016 default-ssl.conf
-rw-r--r-- 1 root root 1332 3月  19  2016 000-default.conf

更改三个配置文件中的ServerName和DoucumentRoot如下:

<VirtualHost *:80>

    ServerName video.imooc.com

    ServerAdmin [email protected]
    DocumentRoot /wwwroot/video
    # 以下为子节点全局文件夹权限设置
    <Directory /wwwroot/video>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>
  • 在sites-enablea文件夹下面还得建立一个软连接,对应上面的conf文件,名字随意
 [email protected]  ~  sudo ln -sv /etc/apache2/sites-available/oa.conf > /etc/apache2/sites-enabled/os.conf
'/etc/apache2/sites-enabled/os.conf' -> '/etc/apache2/sites-available/oa.conf'
  • 重启apache服务sudo service apache2 restart

测试成功如下:

MysqL数据存储目录迁移

来源于这里

登录mysql查看当前数据存储目录

mysql -uroot -p

mysql> select @@datadir;
+-----------------+
| @@datadir       |
+-----------------+
| /var/lib/mysql/ |
+-----------------+
1 row in set (0.00 sec)

关闭mysql-server

sudo service mysql stop / sudo systemctl stop mysql

确认的确关闭mysql-server

sudo systemctl status mysql
  • 关闭无误,输出类似 "Jul 18 11:24:20 ubuntu-512mb-nyc1-01 systemd[1]: Stopped MySQL Community Server."

转移数据目录

sudo rsync -av /var/lib/mysql /data/

备份源数据

sudo mv /var/lib/mysql /var/lib/mysql.bak
sudo mkdir /var/lib/mysql/mysql -p
  • sudo mkdir /var/lib/mysql/mysql -p 是为了保证 /usr/share/mysql/mysql-systemd-start 中验证目录正确

修改mysql-server配置

# /etc/mysql/mysql.conf.d/mysqld.cnf -- 文件
datadir=/data/mysql -- 修改内容

AppArmor权限修改

# /etc/apparmor.d/tunables/alias -- 文件
alias /var/lib/mysql/ -> /data/mysql/, -- 追加内容

重启AppArmor

sudo systemctl restart apparmor
  • 没有追加alias内容,可能导致
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service"
and "journalctl -xe" for details.

启动mysql-server

sudo systemctl start mysql
sudo systemctl status mysql

安装phpmyadmin

自动安装

  • sudo apt-get install phpmyadmin
  • sudo ln -s /usr/share/phpmyadmin/ /var/www/pma

手动安装

  1. 下载phpmyadmin
  2. 使用 FileZilla 通过 SFTP 方式上传到 /var/www/html/pma/

MySQL Remote Access

  • 打开配置文件sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf

注释bind-address //表示允许访问的客户端IP地址。注释掉任何IP都可以访问

  • 新建phpmyadmin账户(主机处填%,表示任何主机都可以访问mysql)
  • 重启服务即可

原文地址:https://www.cnblogs.com/oneTOinf/p/8328859.html

时间: 2024-07-30 22:55:11

Ubuntu LAMP的相关文章

ubuntu LAMP 配置

ubuntu LAMP 配置文件位置: apache:/etc/apache2/apache2.conf php:/etc/php5/apache2/php.ini mysql:/etc/mysql/my.cnf ubuntu LAMP 常见命令: apache重启:sudo /etc/init.d/apache2 restart apache启动:sudo /etc/init.d/apache2 start apache停止:sudo /etc/init.d/apache2 stop mysq

laravel 上线注意事项 (ubuntu lamp)

git clone 项目源码 1.composer 安装 composer install 2.linux文件夹权限 chmod -R 777 storage chmod -R 777 bootstrap/cache 3. .env文件 mv .env.example .env 4.生成key php artisan key:generate 5.配置文件修改 sudo  vim .env APP_DEBUG=false // 关闭debugg DB_DATABASE=yourDatabase

Ubuntu LAMP 便捷配置

Ubuntu建立(apache+php+mysql)+phpmyadminUbuntu建立apache+php+mysql基本的支持环境.暂时还不应用zend优化,因此这里就不涉及到zend optimizer的安装了.其实在ubuntu系统中中安装远比在windows系统中设置更为容易,而且在终端下设置更省事.1.安装Apache服务sudo apt-get install apache2然后按照提示即完成apahce的安装了.这里 可以打开http://127.0.0.1,即可看于是It w

ubuntu——LAMP(Linux -3.13.0-32-generic ,Apache-2.4.18,MySQL-5.6.27,PHP -7.0.5)(二)

The latest major release of PHP version 7.0 has been released with lots of speed optimizations and security. So you should try this version for your development. This tutorial will help you to install PHP 7.0, Apache >= 2.4.17, & MySQL 5.6 on Ubunt

ubuntu LAMP的安装

1.安装 Apache 1.打开终端 2. 输入以下命令 sudo apt-get install apache2 3. 如果没有sudo 权限,需要输入密码. 2.测试 Apache 为了确定安装是否成功,我们来测试一下. 1. 打开浏览器,输入以下网址 http://localhost/ 如果成功,你会看到以下内容 "It works!" , 祝贺你,第一步,你算是跨出去了. 3.安装 PHP5 Step 1. 打开终端 (ctrl+alt+T). Step 2. 输入以下命令行:

Ubuntu --- lamp环境下安装php扩展和开启apache重写

安装教程参考:http://www.laozuo.org/8303.html 1.安装php扩展(比如安装mbstring) 先搜索相关的包 apt-cache search php7 再安装 apt-get install php7.0-mbstring 2.开启apache重写 先开启重写功能 sudo a2enmod rewrite 再修改/etc/apache2/sites-enabled/下对应的配置文件 <Directory /> Options FollowSymLinks Al

ubuntu 搭建lamp

分享一下 大神给的 直接一条命令:apt-get install apache2 mysql-server mysql-client php5 php5-gd php5-mysql 设置Ubuntu文件执行读写权限 LAMP 组建安装好之后,PHP网络服务器根目录默认设置是在:/var/www.由于Linux系统的安全性原则,改 目录下的文件读写权限是只允许root用户操作的,所以我们不能在www文件夹中新建php文件,也不能修改和删除,必须要先修改/var/www目录的 读写权限.在界面管理器

ubuntu 常用生产环境部署配置测试调优

1,ubuntu monogdb 安装配置 2,ubuntu jdk1.7,tomcat7安装 3,ubuntu LAMP部署 4,mongodb 远程热备份及恢复 使用自带的mongodump和mongorestore工具 mongodump -h dbhost -d dbname -o dbdirectory mongorestore -h dbhost -d dbname --directoryperdb dbdirectory 5,mongodb 开启auth 编辑/etc/mongod

「四」创建一个带 apache 服务的镜像

Apache 是世界使用排名第一的 Web 服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的 Web 服务器端软件.同时 Apache 音译为阿帕奇,是北美印第安人的一个部落,叫阿帕奇族,在美国的西南部.也是一个基金会的名称.一种武装直升机等等. 下面是使用 Dockerfile 来创建带 apache 服务的镜像的过程. 创建 apache 文件夹 首先,创建一个叫做 apache_ubuntu 的文件夹,用于存放我们的 Dockerfile