Debian 版本 (记录于2019-10-12)
Debian 10 (Buster) — 当前的稳定版(stable)
Debian 9 (Stretch) — 旧的稳定版(oldstable)
Debian 8 (Jessie) — 更旧的稳定版(oldoldstable)
Debian 7 (Wheezy) — 被淘汰的稳定版
Debian 6 (Squeeze) — 被淘汰的稳定版
… ( 古老版本移步维基了解: https://zh.wikipedia.org/wiki/Debian )
官方FTP一般存放着未被淘汰的资源: http://ftp.debian.org/debian/
而被淘汰的版本会归档到: http://archive.debian.org/debian-archive/
发行版本目录: https://www.debian.org/releases/
选择 Debian 8 (Jessie)
本文选择了 Debian 8.11 amd64 来记录。
官网提供的ios镜像有很多张,只是安装系统的话,用 1 就行了,后面的都是可选的软件包,可用于离线安装软件。
配置网络 (Hyper-V)
配置两张网卡,一张用于外网(eth0),一张用于内网(eth1)。
eth0 配置成动态ip,dhcp自动获取ip,通过主机访问互联网。
eht1 配置成静态ip,同一网关,主机与虚拟机能互通。
网络配置文件: /etc/network/interfaces
auto lo # 开机自动挂载 lo 网卡 iface lo inet loopback # 配置 lo 网卡,回环 auto eth0 # 开机自动挂载 eth0 网卡 iface eth0 inet dhcp # 配置 eth0 网卡,dhcp auto eth1 # 开机自动挂载 eth1 网卡 iface eth1 inet static # 配置 eth1 网卡,static表示使用静态ip,dhcp表示使用动态ip address 10.10.10.100 # 设置ip地址(静态网络需要手动配置下面的参数) netmask 255.255.255.0 # 设置子网掩码 gateway 10.10.10.1 # 设置网关
配置 apt 源
配置为中科大(USTC)的镜像源 – http://mirrors.ustc.edu.cn/
apt 源配置文件: /etc/apt/sources.list
deb http://mirrors.ustc.edu.cn/debian jessie main contrib non-free # deb-src http://mirrors.ustc.edu.cn/debian jessie main contrib non-free deb http://mirrors.ustc.edu.cn/debian jessie-updates main contrib non-free # deb-src http://mirrors.ustc.edu.cn/debian jessie-updates main contrib non-free
这里注释源码镜像以提高 apt update 速度
最后执行 sudo apt update 更新索引
安装常用软件
# 安装 ssh sudo apt intall ssh # 安装 vim sudo apt install vim # 安装 git sudo apt install git # 安装 unzip sudo apt install unzip # 安装 curl sudo apt install curl # 安装 gcc sudo apt install gcc # 安装net-tools 当 ifconfig 命令找不到 sudo apt-get install net-tools
ssh 允许 root 用户登陆:修改 /etc/ssh/sshd_config 中的 “PermitRootLogin” 为 “yes”。
修改时区与系统时间
时区配置文件:/etc/timezone
修改为 Asia/Shanghai
替换时区文件的软链接:
ln -sf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime # 调整系统时间 date -s 15:10:00 # 将当前时间和日期写入BIOS,避免重启后失效 hwclock -w
安装 nginx
版本没啥要求,直接 apt 安装:sudo apt install nginx
安装 php
使用 sury 的 apt 源安装 php 的新版本
因为 sury 的源使用 https,所以得先安装:
sudo apt install apt-transport-https
添加 deb.sury.org 源:
deb http://packages.sury.org/php/ jessie main # 更新索引 sudo apt update # 更新时会出现 the public key is not available: NO_PUBKEY B188E2B695BD4743 sudo wget -O /etc/apt/trusted.gpg.d/sury.gpg https://packages.sury.org/php/apt.gpg # 安装 php7.2 sudo apt intall php7.2
安装mysql
下载 mysql 的 apt 源:https://dev.mysql.com/downloads/repo/apt/
wget https://dev.mysql.com/get/mysql-apt-config_0.8.14-1_all.deb # 安装 apt 源 sudo dpkg -i mysql-apt-config_0.8.14-1_all.deb # 出现 lsb-release is not installed. sudo apt install lsb-release
安装 apt 源出现图形选择界面,各自选择合适的版本,我这里选择了 mysql 5.7 版本,然后 ok 即可。
执行 sudo apt update 更新索引
安装 mysql-server:
sudo apt install mysql-server
中途会出现图形界面要求输入 root 用户的密码,输入即可。
源码与环境分离
本地主机存放源码(方便修改),虚拟机运行环境(避免搞乱主机环境)。
需要虚拟机可以访问主机的文件。采用内网共享文件夹的方案。
在本地创建一个访问共享文件夹的用户。
在本地创建一个存放项目的共享文件夹,给指定用户分配权限。
此文件夹已在内网共享,在 debian 虚拟机挂载此文件夹。
# 创建挂载文件夹 mkdir -p /data/php # 安装 cifs-utils sudo apt install cifs-utils # 挂载共享文件夹(重启会失效) sudo mount -t cifs -o username="dev",password="123456" //10.10.10.2/project-php /data/php # 设置开机自动挂载 vim /etc/fstab # 输入以下内容 username 和 password 不能加引号,不然会因密码错误而挂载失败 //10.10.10.2/project-php /data/php cifs auto,username=dev,password=123456,vers=2.0 0 0 # 查看挂载状态 df -h
配置 lnmp 环境
nginx 主配置文件:/etc/nginx/nginx.conf
nginx + php 需要 php-fpm 来作为桥梁,让 nginx 把请求转交给 php-fpm 来解析执行。
安装 php-fpm 和其他常用 php 扩展:
apt install php7.2-fpm php7.2-curl php7.2-gd php7.2-mbstring php7.2-mysql php7.2-xml php7.2-xmlrpc
安装完默认已启动 php-fpm,增加一个 nginx 的虚拟主机配置代理 php 的请求:
# 创建 test 的可用站点配置文件 vim /etc/nginx/sites-available/test # 输入以下配置 server { listen 80; server_name test.loc; root /data/php/test; index index.html index.htm index.php; location / { try_files $uri $uri/ =404; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/run/php/php7.2-fpm.sock } } # 创建软连接到 sites-enabled 文件夹以启用此站点配置 ln -s /etc/nginx/sites-available/test /etc/nginx/sites-enabled/test # 重启 nginx 以使配置生效 nginx -s reload
配置主机的 host 文件,使 test.loc 解析成 10.10.10.100,然后在共享文件夹的 test 目录下面创建一个 index.php,访问 http://test.loc 即可访问到 index.php 的内容。
安装 composer
据官方指引:https://getcomposer.org/download/
# 安装 composer php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" php -r "if (hash_file('sha384', 'composer-setup.php') === 'a5c698ffe4b8e849a443b120cd5ba38043260d5c4023dbf93e1558871f1f07f58274fc6f4c93bcfd858c6bd0775cd8d1') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" php composer-setup.php php -r "unlink('composer-setup.php');" # 加入 PATH 的路径里,作全局命令 mv composer.phar /usr/local/bin/composer # 配置使用国内镜像 composer config -g repo.packagist composer https://packagist.phpcomposer.com
创建 laravel 项目
composer create-project --prefer-dist laravel/laravel blog "5.8.*"
然后噩梦即将降临…
安装 pip
根据:https://pip.pypa.io/en/stable/installing/
# 下载 pip 安装脚本 curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py # 安装 pip python get-pip.py # 安装 virtualenv pip install virtualenv # 创建 python 虚拟环境(项目目录下) virtualenv venv # 激活虚拟环境 source venv/bin/activate