在 Ubuntu 14.04 服务器上安装 ISPConfig3 的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。
简介
虽然命令行是一个强大的工具,可以让您在许多情况下快速轻松地工作,但在某些情况下,可视化界面是有帮助的。如果您正在为一台机器配置许多不同的服务,或者为客户管理系统的部分,像 ISPConfig 这样的工具可以让这项任务变得更加简单。
ISPConfig 是一个服务器控制面板,允许您轻松配置域名、电子邮件地址、站点配置和用户帐户。我们将在 Ubuntu 14.04 服务器上安装该面板。
先决条件
在开始之前,您应该有一个指向您将要使用的服务器的域名。要了解如何在 DigitalOcean 上配置您的域名,请单击此处。
您还需要一个具有 sudo 权限的非根用户。您可以按照我们的 Ubuntu 14.04 初始服务器设置指南中的步骤 1-4 来学习如何设置非根帐户。以此用户登录以开始操作。
升级系统
我们应该做的第一件事是升级基本系统。这将确保我们系统上的软件包是最新的打包版本。
在执行此操作之前,我们应该更新本地软件包索引,以便 apt
知道最新的软件包版本:
sudo apt-get update
sudo apt-get upgrade
我们的系统现在应该是最新的,我们可以继续进行安装的其余部分。
验证主机名是否正确配置
我们将首先确保我们的主机名已正确配置。在本指南中,我们将假定我们要设置的域名是 server.test.com
,服务器的 IP 地址是 111.111.111.111
。
我们需要验证我们的主机名是否已正确配置。我们应该查看我们的 hosts 文件:
sudo nano /etc/hosts
它可能看起来像这样:
127.0.0.1 localhost server.test.com server
我们希望使我们的主机名使用我们的公共 IP 地址。您可以通过将该行拆分为两行,并将域名部分指向我们的公共 IP 地址来实现:
127.0.0.1 localhost
<span class="highlight">111.111.111.111 server.test.com server</span>
完成后保存并关闭文件。
我们还应编辑我们的 hostname
文件,以确保它也包含正确的域名:
sudo nano /etc/hostname
如果您的整个主机名没有显示,请修改该值:
<span class="highlight">server.test.com</span>
您应该通过键入以下命令来确保系统使用新值:
sudo hostname -F /etc/hostname
更改系统设置
有一些 Ubuntu 以非常规方式配置的项目,我们需要撤消这些配置,以使我们的软件能够正常运行。
我们需要做的第一件事是禁用 AppArmor,因为它与 ISPConfig 不兼容。首先,我们应该停止服务:
sudo service apparmor stop
我们还可以通过输入以下命令来告诉它卸载其配置文件:
sudo service apparmor teardown
完成后,我们需要告诉我们的服务器不要在启动时启动此服务:
sudo update-rc.d -f apparmor remove
我们实际上可以通过输入以下命令来删除所有相关文件和软件包:
sudo apt-get remove apparmor
我们需要修改的另一个配置是默认系统 shell。Ubuntu 使用 dash
shell 用于系统进程,但 ISPConfig 利用了专门由 bash
提供的附加功能。我们可以通过输入以下命令将 bash
设置为默认系统 shell:
sudo dpkg-reconfigure dash
在提示时,选择 “No” 以使实用程序重新配置系统 shell 指针以使用 bash
而不是 dash
。
安装附加组件
现在我们的基本系统已准备就绪,我们可以开始安装 ISPConfig 可以管理的一些服务和支持 ISPConfig 的一些软件。
我们将安装基本的 LAMP(Linux、Apache、MySQL、PHP)组件、邮件软件、用于邮件的防病毒扫描软件以及其他软件包。
我们将在一个大的 apt
命令中执行所有这些操作,因此这将一次安装许多软件包:
sudo apt-get install apache2 apache2-utils libapache2-mod-suphp libapache2-mod-fastcgi libapache2-mod-python libapache2-mod-fcgid apache2-suexec libapache2-mod-php5 php5 php5-fpm php5-gd php5-mysql php5-curl php5-intl php5-memcache php5-memcached php5-ming php5-ps php5-xcache php5-pspell php5-recode php5-snmp php5-sqlite php5-tidy php5-xmlrpc php5-xsl php5-imap php5-cgi php-pear php-auth php5-mcrypt mcrypt php5-imagick imagemagick libruby memcached phpmyadmin postfix postfix-mysql postfix-doc mysql-server openssl getmail4 rkhunter binutils dovecot-imapd dovecot-pop3d dovecot-mysql dovecot-sieve mailman amavisd-new spamassassin clamav clamav-daemon zoo unzip zip arj nomarch lzop cabextract apt-listchanges libnet-ldap-perl libauthen-sasl-perl daemon libio-string-perl libio-socket-ssl-perl libnet-ident-perl libnet-dns-perl bind9 dnsutils vlogger webalizer awstats geoip-database libclass-dbi-mysql-perl squirrelmail pure-ftpd-common pure-ftpd-mysql snmp
在安装过程中,您将被问及一些问题。您将被要求为 mailman
选择一种语言。选择 en (English)
以继续。您还将被要求选择并确认 MySQL 管理员用户的密码。
您将收到的另一个提示是是否为 dovecot
创建自签名的 SSL 证书。您应该选择 “Yes”。您将需要输入 SSL 证书的 “commonName”。这只是您的完全合格的域名:
server.test.com
对于 postfix
,您将被问及需要哪种邮件配置。选择 Internet Site
。然后您将被要求选择系统邮件名称。您也应该将其设置为您的域名:
server.test.com
对于 phpMyAdmin,该软件具有根据您的 Web 服务器自动配置自身的功能。选择 “apache2” 并按下 “SPACE” 以选择该选项。按下 “TAB” 然后按下 “ENTER” 以进行选择。
稍后,您将被问及是否希望使用 dbconfig-common
配置 phpMyAdmin 的数据库。在这里选择 “Yes”。您需要输入您上面选择的 MySQL 管理员帐户的密码。然后您可以选择并确认 phpMyAdmin 用户的密码。
此时,所有组件应该都已安装完毕。
配置后端组件
现在,一切都已经安装好了,我们需要开始配置我们的服务和工具。
邮件配置
让我们从在 postfix
中启用一些功能开始。使用编辑器打开默认配置文件:
sudo nano /etc/postfix/master.cf
我们只需要取消注释该文件中的一些行。具体来说,处理提交服务的行以及其下的前三个选项行,以及 smtps 服务和其下的前三个选项行:
submission inet n - - - - smtpd-o syslog_name=postfix/submission-o smtpd_tls_security_level=encrypt-o smtpd_sasl_auth_enable=yes
. . .
smtps inet n - - - - smtpd-o syslog_name=postfix/smtps-o smtpd_tls_wrappermode=yes-o smtpd_sasl_auth_enable=yes
现在,我们需要在这两个服务下添加一个额外的选项。对于每个服务,它将是相同的:
submission inet n - - - - smtpd-o syslog_name=postfix/submission-o smtpd_tls_security_level=encrypt-o smtpd_sasl_auth_enable=yes<span class="highlight">-o smtpd_client_restrictions=permit_sasl_authenticated,reject</span>
. . .
smtps inet n - - - - smtpd-o syslog_name=postfix/smtps-o smtpd_tls_wrappermode=yes-o smtpd_sasl_auth_enable=yes<span class="highlight">-o smtpd_client_restrictions=permit_sasl_authenticated,reject</span>
完成后保存并关闭文件。
另一个与邮件相关的服务是 mailman
,它可以处理邮件列表。
我们可以开始告诉它创建一个新列表:
sudo newlist mailman
您将被要求提供与列表关联的电子邮件。您还将被要求选择密码。
脚本将输出一长串的别名。您应该将它们添加到您的 /etc/aliases
文件的底部:
sudo nano /etc/aliases
它应该看起来像这样:
postmaster: root
<span class="highlight">mailman: "|/var/lib/mailman/mail/mailman post mailman"</span>
<span class="highlight">mailman-admin: "|/var/lib/mailman/mail/mailman admin mailman"</span>
<span class="highlight">mailman-bounces: "|/var/lib/mailman/mail/mailman bounces mailman"</span>
<span class="highlight">mailman-confirm: "|/var/lib/mailman/mail/mailman confirm mailman"</span>
<span class="highlight">mailman-join: "|/var/lib/mailman/mail/mailman join mailman"</span>
<span class="highlight">mailman-leave: "|/var/lib/mailman/mail/mailman leave mailman"</span>
<span class="highlight">mailman-owner: "|/var/lib/mailman/mail/mailman owner mailman"</span>
<span class="highlight">mailman-request: "|/var/lib/mailman/mail/mailman request mailman"</span>
<span class="highlight">mailman-subscribe: "|/var/lib/mailman/mail/mailman subscribe mailman"</span>
<span class="highlight">mailman-unsubscribe: "|/var/lib/mailman/mail/mailman unsubscribe mailman"</span>
完成后保存并关闭文件。您需要让 postfix
知道您添加的别名。您可以通过输入以下命令来实现:
sudo newaliases
我们可以通过输入以下命令来启动 mailman
服务:
sudo service mailman start
重新启动 postfix
服务以启用邮件更改:
sudo service postfix restart
当我们处理服务时,我们还应该停止并禁用 spamassassin
。ISPConfig 根据需要调用它,因此它不需要一直运行:
sudo service spamassassin stop
然后告诉服务器不要在启动时再次启动它:
sudo update-rc.d -f spamassassin remove
LAMP 配置
我们需要在 PHP 中启用 mcrypt
功能:
sudo php5enmod mcrypt
我们还需要启用我们安装的一些 Apache 模块。
sudo a2enmod rewrite ssl actions include cgi dav_fs suexec dav auth_digest fastcgi alias
我们还需要对一些 Apache 配置文件进行一些调整。
我们启用的模块目前将拦截所有我们的 PHP 文件。我们希望阻止它这样做。打开 suphp
配置文件:
sudo nano /etc/apache2/mods-available/suphp.conf
<IfModule mod_suphp.c><FilesMatch "\.ph(p3?|tml)$">SetHandler application/x-httpd-suphp</FilesMatch>suPHP_AddHandler application/x-httpd-suphp
. . .
我们将用一个单一命令替换顶部块。完成后,它应该看起来像这样:
<IfModule mod_suphp.c><span class="highlight">AddType application/x-httpd-suphp .php .php3 .php4 .php5 .phtml</span>suPHP_AddHandler application/x-httpd-suphp
完成后保存并关闭文件。
我们将不得不手动创建 mailman
Apache 文件的符号链接。您可以通过输入以下命令来实现:
sudo ln -s /etc/mailman/apache.conf /etc/apache2/conf-available/mailman.conf
然后通过输入以下命令来启用它:
sudo a2enconf mailman
如果您计划创建托管 Ruby 文件的站点,您应该在 mime.types
文件中注释掉对 .rb
文件的处理。ISPConfig 将自行处理这个问题:
sudo nano /etc/mime.types
application/x-rss+xml rss
<span class="highlight">#</span>application/x-ruby rb
application/x-rx
完成后保存并关闭文件。
现在,我们可以重新启动 Apache 以实施我们的更改:
sudo service apache2 restart
杂项配置
我们还需要编辑系统的一些其他部分。
由于 ISPConfig 经常用于细分服务器空间以进行转售,为客户提供 FTP 访问通常是一个要求。我们已经安装了必要的软件,但我们需要做一些调整。
首先编辑 FTP 服务器的配置:
sudo nano /etc/default/pure-ftpd-common
我们需要确保我们的 FTP 用户被限制在 chroot 环境中,以免干扰系统的其他部分。我们可以通过将 VIRTUALCHROOT
设置为 true
来实现这一点:
VIRTUALCHROOT=<span class="highlight">true</span>
由于 FTP 本身是不安全的,我们至少应该用 TLS 加密来保护它。我们可以通过创建一个简单包含 1
字符的标志文件来设置这一点:
sudo nano /etc/pure-ftpd/conf/TLS
1
现在,我们需要创建一个自签名证书供进程使用。我们可以通过调用以下命令来实现:
sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout /etc/ssl/private/pure-ftpd.pem -out /etc/ssl/private/pure-ftpd.pem
该证书将在一年内有效。您将需要回答一些提示。请填写您的信息。Common Name
或许是最重要的部分。
之后,我们需要通过输入以下命令来锁定密钥文件:
sudo chmod 600 /etc/ssl/private/pure-ftpd.pem
当所有这些都完成后,我们可以重新启动服务:
sudo service pure-ftpd-mysql restart
这将允许我们的 FTP 守护程序使用加密。
我们在这个系统上设置 FTP 的一个原因是因为我们安装了一个名为 awstats
的监控守护程序,它配置为期望存在这项服务。
ISPConfig 将根据需要调用 awstats
,因此它不需要依赖通常用于轮询服务器的 cron
作业。我们可以通过输入以下命令来删除它:
sudo rm /etc/cron.d/awstats
安装 ISPConfig
我们终于准备好安装实际的 ISPConfig 软件了。
我们可以通过将最新稳定版本下载到我们的服务器上来实现。截至目前,具有直接链接的最新稳定版本是版本 3。我们安装完所有内容后将更新安装。
现在,您应该切换到您的主目录并使用 wget
下载项目:
cd ~
wget http://www.ispconfig.org/downloads/ISPConfig-3-stable.tar.gz
下载完成后,解压目录结构并进入提取的文件夹结构的 install
子目录:
tar xzvf ISPConfig*
cd ispconfig3_install/install/
现在,我们准备安装软件。通过输入以下命令来执行:
sudo php -q install.php
您将经历一个非常冗长的安装过程。
幸运的是,您实际上只需要输入您的 MySQL root 密码!对于其他每个条目,只需按下 “ENTER” 使用默认值并跳过。
安装完成后,通过输入以下命令来更新到最新版本:
sudo php -q update.php
同样,只需按下 “ENTER” 使用每个命令的默认值。
完成后,您可以通过在您的 Web 浏览器中访问您的域名后跟 :8080
来访问您的 ISPConfig 服务:
https://<span class="highlight">server_domain_name</span>:8080
由于我们使用自签名证书,您将收到 SSL 警告:
!ISPConfig SSL 警告
点击 “proceed” 或 “continue” 来接受证书。
您将被带到登录界面。
!ISPConfig 登录界面
默认用户名和密码都是 admin
:
用户名:admin
密码:admin
输入这些值,您将进入 ISPConfig3 界面:
!ISPConfig 主界面
一旦到达这里,您应该通过单击 “System” 按钮,然后在左侧导航菜单的 “User Management” 类别下单击 “CP Users” 链接来更改 admin
用户的密码。
在主窗口中点击 admin
用户帐户。您将在此页面上有更改管理员用户密码的选项。
结论
您现在应该已经安装和配置了 ISPConfig 面板。您应该能够从这个界面内管理域、邮件和帐户。
相关文章:
在 Ubuntu 14.04 服务器上安装 ISPConfig3 的方法
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到网站。 简介 虽然命令行是一个强大的工具,可以让您在许多情况下快速轻松地工作,但在某些情况下,可视化界面…...
ELK学习笔记
ElasticStack分布式日志系统概述 Elasticsearch: 一个分布式搜索引擎,能够快速存储、搜索和分析大量数据。核心概念包括索引(Index)、文档(Document)和分片(Shard)。使用 RESTful API 进行数据操…...
Python+Selenium+Pytest+POM自动化测试框架封装详解
1、测试框架简介 1)测试框架的优点 代码复用率高,如果不使用框架的话,代码会显得很冗余。可以组装日志、报告、邮件等一些高级功能。提高元素等数据的可维护性,元素发生变化时,只需要更新一下配置文件。使用更灵活的…...
Hidden Marlov Model(HMM)
一、Model 1、将声学特征设为X,经过语音识别得到的tokens设为Y,目标是找到通过X得到Y的最大概率,可以通过概率公式改变为 分为两个概率 2、将tokens序列Y转化为states序列S,声学特征分得更细 3、从states到声学特征的过程 二、HM…...
mamba的安装及下载速度慢问题解决
同事反馈mamba的安装时网络慢 mamba是conda的加速工具,相比于conda 对包和环境的管理,mamba可以实现并行运算。相比于 conda,mamba 是用C重写了 conda 的部分功能,运行效率显著提高,可以进行并行的下载,使…...
【Linux入门】Linux环境搭建
目录 前言 一、发行版本 二、搭建Linux环境 1.Linux环境搭建方式 2.虚拟机安装Ubuntu 22.02.4 1)安装VMWare 2)下载镜像源 3)添加虚拟机 4)换源 5)安装VM Tools 6)添加快照 总结 前言 Linux是一款自由和开放…...
CPU缓存一致性机制详解
CPU缓存一致性机制详解 在多核处理器中,缓存一致性是保证系统正常运行的重要环节。本文详细介绍了缓存一致性协议、写入策略、总线嗅探、目录协议等相关概念,并通过示例代码解释了这些机制是如何在实际应用中工作的。通过学习本文,读者可以深…...
Android 12系统源码_屏幕设备(一)DisplayManagerService的启动
前言 DisplayManagerService是Android Framework中管理显示屏幕相关的模块,各种Display的连接、配置等,都是通过DMS和来管理控制。 在DMS模块中,对显示屏幕的描述分为物理显示屏(physical display)和逻辑显示屏(logical display),…...
《AI视频类工具之十——D-ID》
一.简介 官网:D-ID | The #1 Choice for AI Generated Video Creation Platform D-ID是一个人工智能生成的视频创建平台,可以轻松快速地从文本输入中创建高质量、高性价比和引人入胜的视频,背后的Al技术是由Stable Difusion和GPT.3提供支持,可以在没有任何技术知识的情况…...
【网络】局域网LAN、广域网WAN、TCP/IP协议、封装和分用
文章目录 局域网 LAN广域网 WAN网络中的重要概念IP 地址端口号 认识协议协议分层是什么OSI 七层网络模型TCP/IP 五层网络模型(或四层)物理层传输层网络层数据链表层应用层网络设备所在分层 封装和分用[站在发送方视角](封装)[站在…...
我司搜索中台的三次演变
本人从入职就开始负责我司的搜索中台了,总共是经历了三个大版本的迭代。 分别是: 基于阿里云智能开放搜索OpenSearch实现的第一代自研,开源canal(数据同步) 底层阿里云elasticsearch 对索引封装 实现的第二代自研&a…...
html+css+js网页设计 电商模版4个页面
htmlcssjs网页设计 电商模版4个页面 带js 网页作品代码简单,可使用任意HTML编辑软件(如:Dreamweaver、HBuilder、Vscode 、Sublime 、Webstorm、Text 、Notepad 等任意html编辑软件进行运行及修改编辑等操作)。 获取源码 1&…...
区块链技术在Facebook中的潜力:未来趋势与挑战
数据安全的新高度 区块链技术以其去中心化和不可篡改的特性,正在成为提升数据安全和隐私保护的重要工具。Facebook作为全球最大的社交媒体平台之一,正积极探索如何将区块链技术应用于其平台,以增强用户数据的安全性和隐私保护。Facebook在应…...
dockerfile自定义镜像
目录 概念 基于dockerfile创建 dockerfile的命令 构建容器 FROM ENTRYPOINT和CMD RUN COPY和ADD 工作目录和环境变量以及容器卷(挂载卷) EXPOSE 实战 概念 dockerfile就是自定义镜像,通过dockerfile创建的都是镜像,而…...
【工作状态】如何保持专注?
好的睡眠计划主题化 1、保持足够的睡眠,才能头脑清晰和有精力,工作不是纯拼体力,要用脑力的。 2、脑力主要工作放在午餐前,在脑力充足的时候使用脑力,下午五点后可以安排脑力活动较低的工作,比如听课读书。…...
欧科云链研究院对话:风浪越大鱼越贵—链上数据洞悉加密市场规律
作者 Hedy 出品 OKG Research “我们从来就不是理性人。但可以用最简单的工具——链上数据做‘最猛’的分析。” 在经历了超级宏观周之后,金融市场产生了巨大的震荡,加密市场的表现也越来越受到宏观经济因素的影响。欧科云链研究院OKG Research 集结多…...
SQLite库笔记:日期和时间函数
1. 函数概述 SQLite支持7个日期和时间函数,如下: 1 date(time-value, modifier, modifier, ...) 返回YYYY-MM-DD格式的日期 2 time(time-value, modifier, modifier, ...) 返回HH:MM:SS格式的时间 3 datetime(time-value, modifier, modifier, ...…...
Linux开发板运行报错/system/bin/sh: can‘t create /dev/leds: Permission denied
Linux开发板运行报错/system/bin/sh: cant create /dev/leds: Permission denied 1.问题解决 1.问题解决 /system/bin/sh: can’t create /dev/leds: Permission denied 在linux开发板下运行驱动报错没有权限,需要运行 su,同时也会停止打印 在运行: ch…...
月薪5W的项目经理是如何面试的?这份面试攻略请收好!
面试是项目经理求职必须经历的一关,但很多经验不够丰富的项目经理不知道面试会问些什么问题,也不知道要怎么回答,无疑会直接影响面试企业的判断,使项目经理求职受阳.所以,项目经理想要顺利求职,还是有必要掌…...
接口隔离原则
接口隔离原则 接口隔离原则就是客户端不应该依赖它不需要的接口,或者说类间的依赖关系应该建立在最小的接口上。 我们以搜索美女为例,设计了如下的类图: 源代码如下。美女及其实现类: 搜索程序及其子类源代码如下: 最…...
【C++ 面试 - 基础题】每日 3 题(十六)
✍个人博客:Pandaconda-CSDN博客 📣专栏地址:http://t.csdnimg.cn/fYaBd 📚专栏简介:在这个专栏中,我将会分享 C 面试中常见的面试题给大家~ ❤️如果有收获的话,欢迎点赞👍收藏&…...
端到端测试自动化:使用JavaScript打造可靠的Web应用
端到端测试(End-to-End Testing,简称E2E测试)是软件测试的一种形式,用于验证整个应用从端到端的流程是否按预期工作。在JavaScript生态系统中,E2E测试通常使用专门的框架来模拟用户交互,验证应用的业务逻辑…...
『大模型笔记』基于LLM生成真实世界数据的合成问答数据!
基于LLM生成真实世界数据的合成问答数据! 文章目录 一. 基于LLM生成真实世界数据的合成问答数据!1. 概述(Overview)2. 场景(Scenario)2.1. 概述2.1.1. 第1阶段:构建种子数据集(Stage 1. Constructing a seed dataset)2.1.2. 第2阶段:数据增强(可选)(Data Augmentation…...
一个使用Python和`scikit-learn`库实现KMeans聚类算法的简单示例
一个使用Python和scikit-learn库实现KMeans聚类算法的简单示例。首先,请确保您已经安装了scikit-learn库。如果没有安装,可以通过pip安装它: pip install scikit-learn下面是一个简单的例子,展示如何使用scikit-learn中的KMeans进…...
记录一下vue2和vue3中如何配置keep-alive及写法上的差异
应用场景 跳转下一个页面后,返回当前页面,或者在多个页面之间切换,保留页面中的所有状态,常见的就是填写到一半的表单。h5的tabbar页面缓存,避免重复加载数据。 主要实现思路 这个东西很常见,动态路由一…...
面试题:Rabbitmq怎么保证消息的可靠性?
1.消费端消息可靠性保证: 消息确认(Acknowledgements):(自动(默认),手动) 消费者在接收到消息后,默认情况下RabbitMQ会自动确认消息(autoAcktrue)。为保证消息可靠性,可以设置auto…...
性能测试工具之JMeter
JMeter Apache JMeter应用程序是开源软件,是一个100%纯Java应用程序,旨在负载测试功能行为和衡量性能。它最初是为测试Web应用程序而设计的,但后来扩展到其他测试功能。 JMeter是一个免费、开源、跨平台的性能测试工具,于20世纪90年代后期面世。这是一个成熟、健全且具有…...
SQL Zoo 9-.Window functions
以下数据均来自SQL Zoo 1.Show the lastName, party and votes for the constituency S14000024 in 2017.(显示2017年选区“S14000024”的姓氏、政党和选票) SELECT lastName, party, votesFROM geWHERE constituency S14000024 AND yr 2017 ORDER BY…...
智能化清理C盘的方法 小白也可以轻松清理C盘了 不再担心误删文件
智能化清理C盘的方法 小白用户也可以轻松清理C盘了 不再担心误删文件。对于电脑小白来说,C盘清理是一个大大的问题,因为大家都不知道C盘里有哪些文件可以删除,哪些不能删除,所以就直接的导致大家不可能去清理c盘垃圾。 就算是C盘…...
在c#中常用的特性
在C#中,特性(Attributes)是一种将元数据应用于程序实体(如类、方法、属性等)的方式。这些元数据可以在编译时和运行时被读取,常用于配置、自定义行为、装饰器模式等场景。以下是一些C#中常用的特性…...
企业网站建设方案.doc/响应式网站 乐云seo品牌
elites alliance allies revert stewardship fringe orthodoxy creak incitement repudiate wrangle democrat credence filibuster petition disbar purge tumor ductal oncogenic mutant inflammation progenitor...
建个企业网站对公司宣传有用吗/手游推广渠道平台
golang开源项目如今已经狂奔了10年, Google的Go编程语言无疑已经名声大噪。 Go轻巧且易于编译,由于其慷慨的库和抽象可简化并发和分布式(读取:云)应用程序的开发,因此引起了广泛的关注。 但是,…...
厦门建设局耿家强/seo链接优化建议
曾经多次我的鼠标都是因为滚轴坏了而作废,我想这也是大部分小伙伴会遇到的问题。最近我的无线鼠标摔了一下,滚轴坏了。这次闲来无事,索性直接拆机,探索探索,看看可以不可以修好。结果还真的被朕修好了ahahah࿰…...
免费注册一个网站/公司网络推广方案
只包含中文和数字 /^(([\u4E00-\u9FA5])|(\d))$/不能包含字母 /^[^A-Za-z]*$/ A股代码 /^(s[hz]|S[HZ])(000[\d]{3}|002[\d]{3}|300[\d]{3}|600[\d]{3}|60[\d]{4})$/大于0, 小于150, 支持小数位出现5, 如145.5, 用于判断考卷分数 /^150$|(^\d|^[1-9]\d|^[1][0-4]\d)(\.5)?$/ht…...
女装东莞网站建设/优搜云seo
在计算金额的时候,实际上整数,浮点数有时候有点捉襟见肘。于是math包提供了一个Bigdecimal类,所以可以学习一下这个BigDecimal的源码和使用。 首先是看一下他的构造方法: 看起来构建的方式很多,但实际上之间的差别很…...
图书馆网站开发总结/seo零基础教学视频
ARM开发总结的小知识 字节 8位 半字 16位 字 32位 Code, RO-data RW-data,ZI-data 注意设置堆和栈大小 Code为程序代码部分 RO-data 表示程序定义的常量 const temp; RW-data 表示已初始化的全局变量 ZI-data 表示未初始化的全局变量 Program Size: Code"18248"RO-…...