Posts
在Ubuntu 18.04 Bionic Beaver Linux上安装并托管Laravel
目的在Ubuntu 18.04上使用Nginx和MariaDB安装Laravel发行版Ubuntu 18.04仿生海狸要求具有root特权的Ubuntu 18.04的有效安装困难简单约定# -要求给定的linux命令以root特权直接作为root用户或通过使用sudo命令来执行$ -要求给定的linux命令以普通非特权用户身份执行介绍Laravel很快成为顶级PHP框架的位置。它为PHP生态系统带来了在其他框架(如Rails)中发现的许多开发人员友好功能,并因此实现了现代化的PHP开发。如果您希望使用Laravel进行开发或将其托管在Ubuntu 18.04上,则设置过程从未如此简单。由于Laravel是PHP,因此有多种方法可以解决此问题,但是Nginx和MariaDB提供了一种相当简单的方法来使您的项目与可用于生产环境的现代工具一起运行。安装软件包在开始设置所有内容之前,需要一些软件包。它们都可以在Ubuntu的存储库中找到,并且它们在Bionic中都相当新,因此没有理由去找别的地方。$ sudo apt install composer php-mysql php-fpm php-mbstring php-tokenizer php-xml php-json php-common nginx mariadb-server他们会投入更多,但这不会太糟。创建您的Lavavel项目接下来需要做的是启动Laravel项目。这也不是一件大事。您之前安装的Composer软件包几乎可以为您处理所有事情,并且可以立即为您提供功能性的Laravel安装。首先将目录更改为/var/www/目录。由于Nginx将提供此服务,因此这是组织网站的最佳位置。$ cd /var/www接下来,使用Composer创建您的项目。末尾的名称是您的项目以及包含它的文件夹的名称。相应地选择它。$ sudo composer create-project --prefer-dist laravel/laravel yourProject在Ubuntu 18.04上安装带有Composer的LaravelComposer将自动下载并安装所有PHP依赖关系以及Laravel并进行设置。在开始使用和服务项目之前,请更改Nginx的所有权。$ sudo chown -R www-data:www-data yourProject设置数据库接下来,您将需要设置数据库。在开始添加任何内容之前,请确保服务器安全。$ sudo mysql-secure-install仔细检查,设置您的root密码,然后使用其安全默认值。现在,您可以登录MariaDB,并设置数据库以供Laravel使用。$ sudo mysql -u root -p进入后,首先创建数据库。 CREATE DATABASE laravel;然后,创建一个用户以使用该数据库。 CREATE USER `user`@`localhost` IDENTIFIED BY 'yourpassword';授予该用户使用该数据库的权限。 GRANT ALL ON laravel.* TO `user`@`localhost`;最后,清除特权并退出。 FLUSH PRIVILEGES;连接Laravel默认情况下,Laravel配置为使用MySQL(MariaDB),但是您需要为其提供正确的信息以连接到刚刚设置的数据库。在Ubuntu 18.04上配置Laravel数据库继续并转到安装Laravel的目录。您会在config此处看到一个文件夹。该文件夹内是一个数据库配置文件。打开config/database.php。向下滚动以找到MySQL块,如上图所示。更改数据库名称,用户名和密码以匹配您设置的名称。然后,保存并退出。配置Nginx难题的最后一部分是Nginx。这就是实际上将为您的网站提供服务的部分。变成/etc/nginx。在该文件夹中,您将找到Nginx的所有配置。您不需要弄乱任何东西。您可以根据需要调整选项nginx.conf,但是不必使Laravel正常工作。您需要注意两个文件夹。他们是sites-availabe和sites-enabled。sites-available包含您所有的站点配置。要开始为网站提供服务,请在中创建指向网站配置的软链接site-enabled。当前,只有一个条目。从两个文件夹中删除它。然后,sites-available为您的项目创建一个新条目。在文本编辑器中打开新的站点配置,并将其设置为类似于以下内容。server { listen 80; listen [::]:80; server_name your-site.com root /var/www/yourProject; index index.php; location / { try_files $uri $uri/ /index.
Posts
如何使用.htaccess文件拒绝/允许访问文件
题:如何基于文件扩展名允许和拒绝对文件的HTTP访问?我需要拒绝访问所有TXT文件。回答:在下面,您可以找到一个简单的示例,说明如何使用.htaccessfile 调节对文件的下载访问。在第一个示例中,以下.htaccess代码将阻止对所有文件的访问,并扩展.txt所有导致HTTP的请求的文件扩展名ERROR 403: Forbidden.。Order Allow,Deny Deny from All 如果需要基于源IP地址进行下载访问,则可以允许基于每个IP地址进行访问。下面的代码将拒绝对所有.txt文件的访问,然后允许访问来自例如的请求的文件。IP地址204.215.85.145:Order Deny,Allow Deny from All Allow from 204.215.85.145/32
Posts
如何在Raspberry Pi上安装Serviio媒体服务器
目的在Raspberry Pi上安装Serviio媒体服务要求安装了Raspbian“ Stretch”的Raspberry Pi根特权困难简单约定# -要求给定的linux命令以root特权直接作为root用户或通过使用sudo命令来执行$ -要求给定的linux命令以普通非特权用户身份执行介绍Serviio是用Java编写的媒体服务器。它有两个版本:免费版(不幸的是像啤酒一样免费)和“专业版”,它具有一些其他功能,例如远程访问。在本教程中,我们将介绍在运行最低版本的Raspbian“ Stretch”的Raspberry Pi上安装Serviio的方法。安装依赖Serviio用Java编写,因此我们必须安装Java开发套件才能使用它。Raspbian Stretch存储库中有两个JDK版本:在GPLv2许可下发布的开源版本,称为OpenJDK,以及Oracle的商业专有版本(该软件包实际上称为oracle-java8-jdk)。两者都应正常工作,但是在本教程中,我们将使用前者。# apt-get update && apt-get install --no-install-recommends openjdk-8-jdk ffmpeg x264抓住并安装Serviio现在,我们已经安装了所有必需的软件包,我们必须抓住Serviio tarball:由于我们在无头计算机上工作,因此我们将用来wget 完成任务。因此,我们运行:wget http://download.serviio.org/releases/serviio-1.9-linux.tar.gz下载完成后,我们可以继续进行实际的Serviio安装。我们将提取/opt 目录中tarball的内容:显然,您可以选择另一个,但是/ opt通常用于承载自包含的第三方应用程序。让我们继续:# tar -xvzf serviio-1.9-linux.tar.gz -C /opt该-C(简称期权--directory)指示tar将目录更改为给定的一个,在进行操作之前。为Serviio创建系统服务现在已经安装了Serviio,您可以观察到/opt/serviio-1.9/bin目录中存在两个脚本 :serviio.sh 和serviio-console.sh。第一个启动服务器,而第二个启动控制服务器的界面。至此,我们拥有创建systemd服务以在系统启动时启动serviio所需要的一切。要完成此任务,我们必须编写一个小的服务文件。如您所知,systemd是新的linux init系统,现在已被所有主要发行版采用。它已成为开源社区中许多讨论的源头,但无疑已成为标准。要创建服务,只需启动您喜欢的编辑器并创建一个名为serviio.service的文件,其中包含以下文本:[Unit] Description=Serviio media Server After=syslog.target network.target [Service] User=serviio ExecStart=/opt/serviio-1.9/bin/serviio.sh ExecStop=/opt/serviio-1.9/bin/serviio.sh -stop [Install] WantedBy=multi-user.target 描述systemd服务文件的语法不是本教程的目的,但是请注意包含该User=serviio 指令的行。我们想要获得的是serviio,出于安全原因,指定守护程序必须以用户特权而不是以root用户身份运行。该serviio用户尚不存在,因此让我们创建它并为其赋予/opt/serviio-1.9目录及其中所有文件的所有权:# useradd -r -U -s /sbin/nologin serviio && chown -R serviio:serviio /opt/serviio-1.9您可能熟悉该useradd命令,但是为了清楚起见,让我们指定提供的选项的用途。该 -r选项指定我们要创建一个system account。系统帐户没有帐龄信息,且a uid的值小于1000;对于此类帐户,不会创建主目录。该-U 选项将指示程序也创建一个与用户同名的组,并将用户自动添加到该组中。最后使用 -s,我们为用户指定了外壳。在这种情况下,我们使用/sbin/nologin了fake shell。我们出于安全原因使用它:这样,用户(服务运行时)将永远无法使用实际的shell运行命令。我们是:我们已经创建了serviio用户并编写了服务文件。现在我们必须将其复制到/usr/systemd/system目录中:# cp serviio.service /etc/systemd/system要启用该服务,我们现在运行:# systemctl enable serviio.service现在,重新启动系统:如果一切顺利,启动过程完成后,serviio服务将已经处于活动状态。您可以通过运行以下命令来验证其状态:$ systemctl status serviio.
Posts
如何在Ubuntu 20.04 Focal Fossa Linux上自动启动应用程序
本文的目的是向读者展示用户在Ubuntu 20.04 Focal Fossa Linux GNOME桌面上登录后如何自动启动应用程序。在本教程中,您将学习:用户登录后如何自动启动应用程序如何在Ubuntu 20.04 Focal Fossa Linux上自动启动应用程序使用的软件要求和约定软件要求和Linux命令行约定类别要求,约定或使用的软件版本系统已安装Ubuntu 20.04或升级了Ubuntu 20.04 Focal Fossa软件不适用其他以root用户或通过sudo命令对Linux系统的特权访问。约定# -要求给定的linux命令以root特权直接作为root用户执行,或者通过使用sudo命令$ -要求给定的linux命令以普通非特权用户执行如何在Ubuntu 20.04上自动启动应用程序的逐步说明第一步是确保该gnome-session-properties命令在Ubuntu系统上可用。为此,请确保gnome-startup-applications已安装该软件包。为此,请执行:$ sudo apt install gnome-startup-applications 接下来,通过活动菜单搜索startup关键字:单击Startup Applications Preferences开始自动启动应用程序配置。点击Add按钮将新应用添加到自动启动列表在此步骤中,您需要输入用户登录后希望自动启动的应用程序的二进制可执行文件的完整路径。您可以使用which linux命令找到应用程序的完整路径。例如,要找到Firefox浏览器或Gnome终端的完整路径,请执行以下命令:$ which firefox /usr/bin/firefox $ which gnome-terminal /usr/bin/gnome-terminal 输入Name和Comment。在Command字段中包含应用程序的完整路径并点击Add从现在开始,每次您登录Ubuntu系统时,所选应用程序将自动启动。
Posts
chmod
名称chmod [ 手册页 ]-更改文件访问权限
概要chmod [OPTION]... MODE[,MODE]... FILE...chmod [OPTION]... OCTAL-MODE FILE...chmod [OPTION]... --reference=RFILE FILE... 常用选项-R, --recursive change files and directories recursively-c, --changes like verbose but report only when a change is made-v, --verbose output a diagnostic for every file processed 基本r:读取(用户可以读取文件或列出给定目录)w:写入(用户可以写入文件,或在目录中创建文件或目录)x:执行(用户可以执行文件或输入目录)$ ls -ld dir/ 例子八进制模式让我们看看如何使用八进制模式将file.txt权限更改为rwxr-xr--:
$ chmod 764 file.txt 符号规范符号规范只是更改文件和目录权限的另一种方法。在下一个示例中,我们将使用以下符号规范将file.txt的权限更改为rwxr-xr--:
$ chmod u=rwx,g=rx,o=r file.txt
Posts
yum软件包管理器-禁用频繁的存储库元数据更新
如果您是命令行用户,请使用命令行软件包管理器执行软件包搜索和安装yum,则可能会发现使用此工具时元数据经常更新:Loaded plugins: langpacks, refresh-packagekit google-chrome rpmfusion-free-updates rpmfusion-nonfree-updates updates/20/x86_64/metalink updates virtualbox updates/20/x86_64/primary_db 尽管此行为是有意的,并为保持软件更新提供了许多好处,但是如果您看到并不得不每天等待几次此更新完成,这也会令人非常沮丧。系统元数据的默认到期时间为90分钟,因此,每过1.5小时,系统就会下载新的存储库更新。对于生产服务器,这不构成障碍或问题。但是,对于台式机系统,此功能可能很烦人。解决此有时令人讨厌的功能的最佳方法是延长更新间隔。这可以通过编辑yum的配置文件/etc/yum.conf并设置:metadata_expire=7d 以上将元数据更新间隔设置为7天。另一个可用选项是“ m”(分钟)或“ h”(小时)。60m表示60分钟,而3h等于3小时。请注意,如果您需要强制更新元数据,则可以随时通过以下命令进行更新:# yum-updatesd
Posts
是
名称是的[ 手册页 ]-重复输出一个字符串,直到被杀死
概要yes [STRING]...yes OPTION 例子yes命令主要用于测试目的。它将“ y”重复打印到强壮啤酒,直到被杀死。按CTRL + c完成是执行。
$ yes
Posts
使用modinfo获取Linux内核模块信息
每次引导Linux系统时,系统都会加载许多内核模块,并用于为文件系统,新硬件等提供其他支持。获得有关特定内核模块的信息可能是一项重要的故障排除技能。在本文中,我们将说明如何使用modinfo命令获取模块信息,例如描述,依赖项,作者或相关的目标文件名。默认情况下,所有可加载内核模块都安装在/lib/modules目录中。对于每个特定内核,创建一个单独的目录以包含要与该特定内核一起使用的模块:# ls /lib/modules/ 3.14.5-200.fc20.x86_64 3.14.6-200.fc20.x86_64 3.14.8-200.fc20.x86_64 从上面的示例中,我们可以看到这个特定的系统安装了三个内核。在任何给定时间只能运行一个内核:# uname -a Linux localhost.localdomain 3.14.8-200.fc20.x86_64 #1 SMP Mon Jun 16 21:57:53 UTC 2014 x86_64 x86_64 x86_64 GNU/Linux 上面的uname命令输出显示这3.14.8-200.fc20是当前系统的运行内核,因此/lib/modules/3.14.8-200.fc20.x86_64/正在使用从目录加载的模块。要列出所有当前加载的内核模块,我们可以使用lsmod命令:$ lsmod ... e1000e 258512 0 ghash_clmulni_intel 13216 0 i2c_algo_bit 13257 1 i915 drm_kms_helper 50652 1 i915 drm 283747 4 i915,drm_kms_helper ptp 18725 1 e1000e pps_core 19130 1 ptp ... 从这里,我们可以使用modinfo命令来挖掘有关任何特定模块的模式信息。首先,我们可以获得一般的模块描述:$ modinfo -d e1000e Intel(R) PRO/1000 Network Driver 此特定模块的实际目标文件位置是什么:$ modinfo -n e1000e /lib/modules/3.14.8-200.fc20.x86_64/kernel/drivers/net/ethernet/intel/e1000e/e1000e.ko 要查看任何给定已安装的Linux内核-k开关的目标文件位置,可以使用。$ modinfo -k 3.
Posts
在Debian Wheezy上安装inxi系统信息脚本
inxi该全功能系统信息脚本当前不适用于Debian Wheezy Linux。本教程将指导您在Debian Wheezy Linux上通过inxi系统信息脚本进行安装。inxi先决条件安装# apt-get install gawk lm-sensors binutils mesa-utils hddtemp sudo 获取当前inxi源代码为了在您的Debian系统上安装inxi,您需要首先获取当前的inxi源文件:# cd /tmp/ # wget -Nc --no-check-certificate https://inxi.googlecode.com/svn/trunk/inxi.tar.gz # tar xzf inxi.tar.gz inxi脚本安装# cp /tmp/inxi /usr/local/bin/ inxi手册页安装# cp /tmp/inxi.1.gz /usr/share/man/man1/ inxi安装后在这一阶段,您应该可以开始使用inxi了:# inxi CPU~Dual core Intel Core2 L7400 (-MCP-) clocked at 1000 Mhz Kernel~3.2.0-4-686-pae i686 Up~60 days Mem~440.3/1000.8MB HDD~75.5GB(84.0% used) Procs~137 Client~Shell inxi~2.1.28 inxi在用户空间中工作,因此非特权用户也可以使用它。您可能需要检查是否可以通过运行以下命令来改善inxi的输出信息:# inxi --recommends
Posts
如何为Ubuntu 18.04 Bionic Beaver Linux安装FTP客户端
目的以下文章将提供适用于Ubuntu 18.04 Bionic Beaver Linux的FTP客户端列表,以及安装和基本使用说明。操作系统和软件版本操作系统: -Ubuntu 18.04 Bionic Beaver Linux要求sudo需要以root或通过命令对Ubuntu系统的特权访问。约定# -要求给定的linux命令以root特权直接作为root用户或通过使用sudo命令来执行$ -要求给定的linux命令以普通非特权用户身份执行本教程的其他版本Ubuntu 20.04(Focal Fossa)介绍使用FTP客户端使用各种协议将本地文件传输到远程服务器。一些用于Ubuntu操作系统的FTP客户端具有基本功能,因此仅支持FTP协议,而许多其他FTP客户端则支持多种协议,例如SFTP,SMB,AFP,DAV,SSH,FTPS,NFS等。为Ubuntu 18.04选择最佳FTP客户端的选择取决于许多因素。本指南将列出具有大量功能的FTP客户端,还将提供有关小型但功能强大的命令行FTP客户端的信息。鹦鹉螺我们要介绍的第一个Ubuntu的FTP客户端是Nautilus。如果您使用的是默认的Ubuntu 18.04 Bionic Beaver GNOME桌面,则无需多看,因为Ubuntu系统上已经安装了Nautilus。Nautilus是一个文件管理器。但是,由于它支持多种网络协议,因此可以将其用作FTP客户端。它具有“拖放”文件功能,并且使用起来非常直观。要安装Nautilus,请执行:$ sudo apt install nautilus 要启动Nautilus,请点击Files桌面上的图标或运行命令:$ nautilus 要启动新的FTP连接,请单击Other Locations并填写Connect to Server框。根据您希望使用的协议,输入ftp://,sftp等等。点击后Connect,将要求您提供FTP用户凭据。准备就绪后Connect,启动新的FTP连接。FileZillaFileZilla可能是最著名的,并且被认为是最好的FTP客户端之一。这主要是因为它具有丰富的功能,不仅可以用作FTP客户端,还可以用作常规文件管理器。要安装FileZilla,请执行:$ sudo apt install filezilla FileZilla FTP客户端可以从“开始”菜单或执行以下命令来启动:$ filezilla 界面相当直观。要创建与服务器的FTP连接,请输入FTP服务器的主机名或IP地址,您的凭据以及您希望连接的网络端口(可选)。FileZilla具有丰富的功能。FTPgFTP是真正的FTP客户端。如果您的Ubuntu 18.04系统需要一些轻量级的FTP客户端,这是一个不错的选择。它支持多种协议,并具有大量功能。要安装gFTP,请输入以下命令:$ sudo apt install gftp 使用“开始”菜单搜索gFTP图标以启动它或执行以下linux命令:$ gftp gFTP客户端易于使用。填写您的FTP凭据和FTP服务器详细信息,然后点击左侧的connect按钮尽管gFTP简单易用,但此FTP客户端提供了多种功能并支持许多网络协议。克鲁萨德Krusader是我个人的最爱。这是用于管理文件的瑞士刀。Krusader是适用于各种场合的工具,默认情况下,它仅支持FTP协议。对于SFTP和其他网络协议支持,请安装该kio-extras软件包。如果您没有运行KDE桌面,则Krusader的安装可能很少,因为它依赖于KDE Frameworks基础库提供的服务,该库默认情况下未安装在GNOME桌面上。要安装Krusader并为其提供对其他网络协议的额外支持,请执行以下步骤:$ sudo apt install krusader kio-extras 要在Krusader上创建新的FTP连接,请导航至Tools-New Net Connection...或直接按CTRL+N。选择协议,插入您的FTP凭据和FTP服务器详细信息。如果您从前就熟悉古色古香的诺顿指挥官,那么您在这里应该会感到宾至如归。KonquerorKonqueror是KDE等离子桌面的默认文件管理器,但是,它也可以作为FTP客户端使用。要安装Konqueror,请输入:$ sudo apt install konqueror 从开始菜单或执行以下命令来启动Konqueror:$ konqueror 将Konqueror用作FTP客户端的正确语法使用以下格式输入URL: ftp://username:[email protected]使用Konqueror作为FTP客户端创建FTP连接并不容易。ftp让我们开始学习基础知识。如果您没有使用任何GUI且仅依赖命令行(大多数Ubuntu服务器就是这种情况),那么您可能会对命令行FTP客户端感兴趣。很有可能已经在您的Ubuntu系统上安装了一个ftp。命令行FTP客户端的优点是可以轻松编写脚本以自动执行文件管理任务。如果需要安装,请输入:$ sudo apt install ftp 要使用ftp命令从命令行创建FTP连接,只需输入:ftp FTP-SERVER-HOST-OR-IP。出现提示后,输入您的用户名和密码。有关更多ftp命令用法信息,请输入:$ man ftp ncftp如果您需要更复杂的命令FTP客户端,您可能会感兴趣ncftp。NcFTP具有大量功能,并且易于使用。要安装NcFTP,请运行:$ sudo apt install ncftp 要使用NcFTP创建新的FTP连接,请输入:ncfpt -u USERNAME FTP-SERVER-HOST-OR-IP。有关功能和用法语法的完整列表,请输入:$ man ncftp ftp我们要研究的最后一个FTP客户端是lftp。lftp具有大量功能。如果您要查找的功能未按以下列出:$ man lftp 那么您很可能正在寻找错误的解决方案,因为man lftp包含超过1660行。要安装,请lftp输入:$ sudo apt install lftp 遍历所有lftp功能是另一篇文章的故事。创建FTP连接的基础是:lft [email protected]