Home > FreeBSD > Скрипт автоматической установки типового веб-сервера на FreeBSD

Скрипт автоматической установки типового веб-сервера на FreeBSD

Задача: в автоматическом режиме установить основное ПО необходимое для работы веб-сервера: nginx/Apache/PHP/MySQL/vsftpd.
Скачать скрипт целиком

#!/bin/sh

### ver. 0.92 from 7.07.2009

### No need change in this script ###

os=`uname -a |grep -c FreeBSD`
if [ $os = "0" ]; then
    echo "This script work only on FreeBSD. Exit."
    exit
fi

echo "Enter username to create (default, admin):"
read USER
echo "This host is VPS? (yes/no. Default, no):"
read thisvps

if [ -z $USER ]; then
    USER=admin
fi
if [ -z $thisvps ]; then
    thisvps=no
fi

confighost=unix-notes.ru
USERPASS=`< /dev/urandom tr -dc A-Za-z0-9 | head -c15`
SQLPASS=`< /dev/urandom tr -dc A-Za-z0-9 | head -c15`
thiswebazilla=`uname -a | grep -c "webazilla"`

echo "WITHOUT_X11=yes" >> /etc/make.conf
echo "WITHOUT_IPV6=yes" >> /etc/make.conf
echo "WITHOUT_SAMBA=yes" >> /etc/make.conf

echo 'fsck_y_enable="YES"' >> /etc/rc.conf
echo 'icmp_drop_redirect="YES"' >> /etc/rc.conf
echo 'accounting_enable="YES"' >> /etc/rc.conf
echo 'syslogd_flags="-ss"' >> /etc/rc.conf
echo 'tcp_drop_synfin="YES"' >> /etc/rc.conf
echo 'tcp_restrict_rst="YES"' >> /etc/rc.conf
echo 'apache2_enable="YES"' >> /etc/rc.conf
echo 'mysql_enable="YES"' >> /etc/rc.conf
echo 'mysql_dbdir="/home/mysql"' >> /etc/rc.conf
echo 'nginx_enable="YES"' >> /etc/rc.conf
echo 'vsftpd_enable="YES"' >> /etc/rc.conf

# check to exist homedir
if [ ! -d /home ];  then
   echo "/home is no exist! setup canceled."
   exit
fi

# add additional dns servers, OpenDNS
echo "nameserver 208.67.222.222" >> /etc/resolv.conf

mkdir /root/.ssh
cd /root/.ssh
fetch http://$confighost/config/ssh/egor-pentarh/authorized_keys
chown -R root /root
chmod -R 400 /root

if [ $thisvps = "no" ]; then
    cd /etc
    rm -f /etc/sysctl.conf
    fetch http://$confighost/config/freebsd/sysctl.conf
    /etc/rc.d/sysctl restart

    ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
    ntpdate pool.ntp.org
    echo "1 1 * * * root ntpdate pool.ntp.org" >> /etc/crontab
fi

if [ $thisvps = "yes" ]; then
    ln -sf /usr/share/zoneinfo/Europe/Moscow /etc/localtime
fi

freebsd-update fetch
freebsd-update install

portsnap fetch
portsnap extract
portsnap update

make WITHOUT_SAMBA=yes -DBATCH -C /usr/ports/misc/mc install clean
make WITH_RC_NG=yes -DBATCH -C /usr/ports/ftp/vsftpd install clean
make WITHOUT_IPV6=yes -DBATCH -C /usr/ports/www/apache20 install clean
make WITH_CHARSET=utf8 WITH_COLLATION=utf8_unicode_ci -DBATCH -C /usr/ports/databases/mysql51-server install clean
make WITH_APACHE=yes WITHOUT_IPV6=yes -DBATCH -C /usr/ports/lang/php5 install clean
make WITH_BUNDLED_PCRE=yes -DBATCH -C /usr/ports/devel/php5-pcre install clean
make WITH_MBSTRING=yes WITH_CURL=yes WITH_FTP=yes WITH_GD=yes WITH_MCRYPT=yes WITH_MYSQL=yes WITH_MYSQLI=yes WITH_OPENSSL=yes WITH_SOCKETS=yes WITH_ZLIB=yes -DBATCH -C /usr/ports/lang/php5-extensions install clean
make -DBATCH -C /usr/ports/www/mod_geoip2 install clean
make WITH_HTTP_FLV_MODULE=yes -DBATCH -C /usr/ports/www/nginx install clean
make -DBATCH -C /usr/ports/www/mod_rpaf2 install clean
make -DBATCH -C /usr/ports/devel/ZendOptimizer install clean

cd /usr/local/etc
rm -f /usr/local/etc/vsftpd.conf
fetch http://$confighost/config/linux/vsftpd.conf
chmod 400 /usr/local/etc/vsftpd.conf

cd /usr/local/etc/apache2/Includes
fetch http://$confighost/config/freebsd/mod_rpaf.conf
iplist=`ifconfig | grep inet | grep -v inet6 | awk '{print $2}' | grep -v '^$' | tr "\n" " "`
sed -I "" "s/127.0.0.1/$iplist/g" /usr/local/etc/apache2/Includes/mod_rpaf.conf
mkdir /var/log/httpd
chmod 777 /var/log/httpd

# Create user and setup user folders
pw user add $USER -d /home/$USER -m -s /sbin/nologin
echo "$USERPASS" |pw usermod $USER -h0
mkdir /home/$USER/domains
chmod -R 755 /home/$USER
chown -R $USER:www /home/$USER/domains

cd /home/$USER
fetch http://$confighost/config/freebsd/create_domain.sh
sed -I "" "s/testuser/$USER/g" /home/$USER/create_domain.sh
chmod +x /home/$USER/create_domain.sh
mkdir /usr/local/etc/apache2/vhosts
cd /usr/local/etc/apache2/vhosts
fetch http://$confighost/config/freebsd/sample

cd /home/$USER
fetch http://$confighost/config/freebsd/create_base.sh
sed -I "" "s/INSERTPASSHERE/$SQLPASS/g" /home/$USER/create_base.sh
chmod +x /home/$USER/create_base.sh

cd /home/$USER
fetch http://$confighost/config/freebsd/create_multi_bases.sh
sed -I "" "s/INSERTPASSHERE/$SQLPASS/g" /home/$USER/create_multi_bases.sh
sed -I "" "s/username/$USER/g" /home/$USER/create_multi_bases.sh
chmod +x /home/$USER/create_multi_bases.sh


cd /usr/local/etc/apache2
rm -f /usr/local/etc/apache2/httpd.conf
fetch http://$confighost/config/freebsd/httpd.conf

cd /usr/local/etc/
fetch http://$confighost/config/freebsd/php.ini

cd /usr/local/etc/nginx
rm -f /usr/local/etc/nginx/nginx.conf
fetch http://$confighost/config/freebsd/nginx.conf
iplist2=`ifconfig | grep inet | grep -v inet6 | awk '{print $2}' | grep -v '^$'|grep -v 127.0.0.1 | sed 's/\(.*\)/listen \1;/'`
sed -I "" "s/user_name/$USER/g" /usr/local/etc/nginx/nginx.conf
sed -I "" "s/IPADDR/$iplist2/g" /usr/local/etc/nginx/nginx.conf
mkdir /var/log/nginx/
chmod 777 /var/log/nginx/

mkdir /home/mysql
mkdir /home/mysql/tmp
chown -R mysql /home/mysql/
chmod -R 755 /home/mysql/
cd /etc
rm -f /etc/my.cnf
if [ $thisvps = "no" ]; then
    fetch http://$confighost/config/freebsd/my.cnf
fi
if [ $thisvps = "yes" ]; then
    fetch http://$confighost/config/freebsd/vps/my.cnf
fi
touch /var/log/mysqld.log
chmod 777 /var/log/mysqld.log
/usr/local/etc/rc.d/mysql-server start
/usr/local/bin/mysqladmin password $SQLPASS
echo "DELETE FROM mysql.user WHERE Password=''" | /usr/local/bin/mysql --password=$SQLPASS

/usr/local/etc/rc.d/apache2 start
/usr/local/etc/rc.d/nginx start
/usr/local/etc/rc.d/vsftpd start

echo "##############################"
echo "Setup ready!"
echo "FTP username: $USER"
echo "FTP password: $USERPASS"
echo "MySQL root password: $SQLPASS"
echo "##############################"

FreeBSD ,

  1. iNeko
    December 21st, 2009 at 20:48 | #1

    Почему апачь начинает слушать только 192.168.0.1 а не то что бы мне хотелось когда я меняю адрес. Второй вопрос почему апачь невидит ничего в док папке хоть просто хоть в /www. Воть. Расскажите если можно подробней.

  2. admin
    December 21st, 2009 at 22:50 | #2

    Вообще то принято приводить свою последовательность действий и точное сообщение об ошибке, которое получается.

  3. iNeko
    December 21st, 2009 at 23:45 | #3

    прошу прощения.

    И так такая сказка по порядку.

    установлена система через сеть с русского №2 сервера.
    адрес в локалке у машины должен быть. 192.168.0.3
    затем ничего не ставя на неё кроме ССАШ заливаю ваш скрипт и запускаю.

    Работает, обновляется всё.
    запустился и пошёл всё при старте пишет, что полный ОК

    соответственно когда я раньше ставила себе Апач то я могла в локальной сети на любой машинке написать в браузере 192.168.0.3 и попадала на файлик индексный что лежал в сервер руут.

    сейчас я туда его кладу и вижу тока 404 ошибку

    когда пробую в апаче сменить адрес прослушиванья, то получается что, апачь при старте ругается и выставляет обратно 192.168.0.1

    куда смотреть, где править?
    ААА у меня истерика !!!! >.<

  4. admin
    December 21st, 2009 at 23:54 | #4

    Не паникуйте, сейчас спокойно во всем разберемся 😉

    Для начала, в моей конфигурации апач висит на локалхосте (Listen 127.0.0.1:80), а на внешнем адресе слушает nginx.
    Второе: если вы запускали скрипт по дефолту, то у вас должна быть папка /home/admin/domains. Она есть?
    Третье: вы хотите попадать на сервер именно по IP-адресу или все-таки по доменному имени?

  5. iNeko
    December 22nd, 2009 at 00:44 | #5

    DПока в локальной сети всёравно.
    Ну тоесть ему незачем смотреть во внешнюю сеть.

    Это будет скоро но пока не сейчас.

    папки нету.
    Я дмаю что надо совсем пвсё по дэфолту с делать =(

  6. admin
    December 22nd, 2009 at 01:02 | #6

    А у вас задача то какая? Просто показывать содержимое папки через веб? И все?
    Если так, то вам можно из моего скрипта оставить только установку апача и все.

  7. admin
    December 22nd, 2009 at 01:04 | #7

    Можете написать мне в аську – помогу. Номер отправил на почту.

  8. iNeko
    December 22nd, 2009 at 01:15 | #8

    С аськой сложно и почта то мужа.

    Мне нужно поставить апачь
    Мускуль.
    и ПХП

    будет стоять форум
    и ворд пресс. им нужна база как я понимаю.
    адальше как пойдёт.

  9. admin
    December 22nd, 2009 at 01:31 | #9

    Давайте тогда попробуем разобраться что сейчас у вас там творится.
    Покажите
    uname -a
    df -H
    ifconfig
    sockstat |grep http
    sockstat |grep nginx
    ls -la /
    ps auxww

  10. admin
    December 22nd, 2009 at 01:36 | #10

    А вообще, советую вам экспериментировать на виртуальной машине (VirtualBox, VMWare – что вам больше нравится). Там можно быстро откатывать изменения, экспериментировать, не боясь сломать и даже пустить в виртуалку кого-нибудь из интернета чтобы помогли с настройкой 😉

  11. iNeko
    December 22nd, 2009 at 01:37 | #11

    ой…
    боюсь что это только завтра.

    Часиков через 10 напишу =)

    Спасибо за помощь =)

  12. iNeko
    December 22nd, 2009 at 13:26 | #12

    Кстати письма я не получала =)

    И так… надеюсь что влезит.

    Итак, я всё переустановила.
    Папка /home/admin/domains появилась но пустая.
    Uname –a пишет:
    FreeBSD webhost.local 8.0-RELEASE FreeBSD 8.0-RELEASE #0: Sat Nov 21 15:48:17 UT C 2009 root@almeida.cse.buffalo.edu:/usr/obj/usr/src/sys/GENERIC i386

    df –H пишет:
    Filesystem Size Used Avail Capacity Mounted on
    /dev/ar0s1a 520M 169M 309M 35% /
    devfs 1.0k 1.0k 0B 100% /dev
    /dev/ar0s1e 520M 14k 478M 0% /tmp
    /dev/ar0s1f 72G 1.1G 65G 2% /usr
    /dev/ar0s1d 2.1G 91M 1.8G 5% /var

    Ifconfig пишет:
    em0: flags=8843 metric 0 mtu 1500
    options=9b
    ether ??.??.??.??.??.??
    inet 192.168.0.3 netmask 0xffffff00 broadcast 192.168.0.255
    media: Ethernet autoselect (1000baseT )
    status: active
    fxp0: flags=8802 metric 0 mtu 1500
    options=2009
    ether ??.??.??.??.??.??
    media: Ethernet autoselect (none)
    status: no carrier
    plip0: flags=8810 metric 0 mtu 1500
    lo0: flags=8049 metric 0 mtu 16384
    options=3
    inet6 fe80::1%lo0 prefixlen 64 scopeid 0x4
    inet6 ::1 prefixlen 128
    inet 127.0.0.1 netmask 0xff000000

    sockstat |grep http пишет:
    www httpd 1171 3 tcp4 127.0.0.1:80 *:*
    www httpd 1170 3 tcp4 127.0.0.1:80 *:*
    www httpd 1169 3 tcp4 127.0.0.1:80 *:*
    www httpd 1168 3 tcp4 127.0.0.1:80 *:*
    www httpd 1167 3 tcp4 127.0.0.1:80 *:*
    admin httpd 1141 3 tcp4 127.0.0.1:80 *:*

    sockstat |grep nginx пишет:
    www nginx 981 5 tcp4 192.168.111.4:80 *:*
    www nginx 981 6 stream -> ??
    www nginx 981 8 stream -> ??
    www nginx 981 10 stream -> ??
    www nginx 981 13 stream -> ??
    www nginx 980 5 tcp4 192.168.111.4:80 *:*
    www nginx 980 6 stream -> ??
    www nginx 980 7 stream -> ??
    www nginx 980 8 stream -> ??
    www nginx 980 11 stream -> ??
    www nginx 979 5 tcp4 192.168.111.4:80 *:*
    www nginx 979 6 stream -> ??
    www nginx 979 7 stream -> ??
    www nginx 979 8 stream -> ??
    www nginx 979 9 stream -> ??
    www nginx 978 5 tcp4 192.168.111.4:80 *:*
    www nginx 978 6 stream -> ??
    www nginx 978 7 stream -> ??
    www nginx 978 9 stream -> ??
    www nginx 978 10 stream -> ??
    root nginx 977 5 tcp4 192.168.111.4:80 *:*
    root nginx 977 6 stream -> ??
    root nginx 977 7 stream -> ??
    root nginx 977 8 stream -> ??
    root nginx 977 9 stream -> ??
    root nginx 977 10 stream -> ??
    root nginx 977 11 stream -> ??
    root nginx 977 12 stream -> ??
    root nginx 977 13 stream -> ??

    ls -la / пишет:
    total 57
    drwxr-xr-x 20 root wheel 512 Dec 21 15:20 .
    drwxr-xr-x 20 root wheel 512 Dec 21 15:20 ..
    -r——– 2 root wheel 798 Nov 21 17:57 .cshrc
    -r——– 2 root wheel 265 Nov 21 17:57 .profile
    drwxrwxr-x 2 root operator 512 Dec 21 12:55 .snap
    -r–r–r– 1 root wheel 6206 Nov 21 17:57 COPYRIGHT
    drwxr-xr-x 2 root wheel 1024 Nov 21 17:54 bin
    drwxr-xr-x 8 root wheel 1024 Dec 21 13:09 boot
    drwxr-xr-x 2 root wheel 512 Dec 21 12:55 cdrom
    drwxr-xr-x 2 root wheel 512 Dec 21 12:55 cdrom1
    lrwxr-xr-x 1 root wheel 10 Dec 21 13:57 compat -> usr/compat
    dr-xr-xr-x 6 root wheel 512 Dec 22 12:23 dev
    drwxr-xr-x 20 root wheel 2560 Dec 21 17:34 etc
    lrwxr-xr-x 1 root wheel 8 Dec 21 15:20 home -> usr/home
    drwxr-xr-x 3 root wheel 1536 Nov 21 17:55 lib
    drwxr-xr-x 2 root wheel 512 Dec 21 13:09 libexec
    drwxr-xr-x 2 root wheel 512 Nov 21 17:53 media
    drwxr-xr-x 2 root wheel 512 Nov 21 17:53 mnt
    dr-xr-xr-x 2 root wheel 512 Nov 21 17:53 proc
    drwxr-xr-x 2 root wheel 2560 Nov 21 17:55 rescue
    dr——– 4 root wheel 512 Dec 21 17:10 root
    drwxr-xr-x 2 root wheel 2560 Nov 21 17:56 sbin
    lrwxr-xr-x 1 root wheel 11 Nov 21 17:57 sys -> usr/src/sys
    drwxrwxrwt 8 root wheel 512 Dec 22 12:23 tmp
    drwxr-xr-x 17 root wheel 512 Dec 21 15:51 usr
    drwxr-xr-x 24 root wheel 512 Dec 22 12:23 var

    ps auxww пишет:

    USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
    root 11 200.0 0.0 0 16 ?? RL 12:23PM 100:56.57 [idle]
    root 0 0.0 0.0 0 56 ?? DLs 12:23PM 0:00.34 [kernel]
    root 1 0.0 0.0 2912 508 ?? ILs 12:23PM 0:00.01 /sbin/init —
    root 2 0.0 0.0 0 8 ?? DL 12:23PM 0:00.11 [g_event]
    root 3 0.0 0.0 0 8 ?? DL 12:23PM 0:00.11 [g_up]
    root 4 0.0 0.0 0 8 ?? DL 12:23PM 0:00.14 [g_down]
    root 5 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [xpt_thrd]
    root 6 0.0 0.0 0 8 ?? DL 12:23PM 0:00.01 [fdc0]
    root 7 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [sctp_iterator]
    root 8 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [pagedaemon]
    root 9 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [vmdaemon]
    root 10 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [audit]
    root 12 0.0 0.0 0 152 ?? WL 12:23PM 0:03.57 [intr]
    root 13 0.0 0.0 0 8 ?? DL 12:23PM 0:00.16 [yarrow]
    root 14 0.0 0.0 0 160 ?? DL 12:23PM 0:00.12 [usb]
    root 15 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [pagezero]
    root 16 0.0 0.0 0 8 ?? DL 12:23PM 0:00.01 [bufdaemon]
    root 17 0.0 0.0 0 8 ?? DL 12:23PM 0:00.05 [syncer]
    root 18 0.0 0.0 0 8 ?? DL 12:23PM 0:00.01 [vnlru]
    root 19 0.0 0.0 0 8 ?? DL 12:23PM 0:00.03 [softdepflush]
    root 20 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [flowcleaner]
    root 607 0.0 0.1 3448 1140 ?? Is 12:23PM 0:00.00 /usr/sbin/moused -p /dev/ ums0 -t auto -I /var/run/moused.ums0.pid
    root 624 0.0 0.1 1888 540 ?? Is 12:23PM 0:00.00 /sbin/devd
    root 731 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [accounting]
    root 762 0.0 0.1 3344 1224 ?? Is 12:23PM 0:00.01 /usr/sbin/syslogd -ss
    root 878 0.0 0.1 3404 1244 ?? Is 12:23PM 0:00.00 /usr/local/libexec/vsftpd
    root 977 0.0 0.3 4748 2684 ?? Is 12:23PM 0:00.00 nginx: master process /us r/local/sbin/nginx
    www 978 0.0 0.3 4748 3412 ?? S 12:23PM 0:00.12 nginx: worker process (ng inx)
    www 979 0.0 0.3 4748 3412 ?? S 12:23PM 0:00.12 nginx: worker process (ng inx)
    www 980 0.0 0.3 4748 3412 ?? S 12:23PM 0:00.12 nginx: worker process (ng inx)
    www 981 0.0 0.3 4748 3412 ?? I 12:23PM 0:00.00 nginx: worker process (ng inx)
    root 1141 0.0 1.3 21480 13640 ?? Ss 12:23PM 0:00.18 /usr/local/sbin/httpd
    root 1160 0.0 0.4 6676 3664 ?? Is 12:23PM 0:00.00 /usr/sbin/sshd
    www 1167 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    www 1168 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    www 1169 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    www 1170 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    www 1171 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    root 1172 0.0 0.3 6072 3336 ?? Ss 12:23PM 0:00.05 sendmail: accepting conne ctions (sendmail)
    smmsp 1176 0.0 0.3 6072 3424 ?? Is 12:23PM 0:00.00 sendmail: Queue runner@00 :30:00 for /var/spool/clientmqueue (sendmail)
    root 1182 0.0 0.1 3372 1360 ?? Is 12:23PM 0:00.01 /usr/sbin/cron -s
    root 1340 0.0 0.4 9400 4352 ?? Is 1:02PM 0:00.06 sshd: iNeko [priv] (sshd)
    iNeko 1343 0.0 0.4 9400 4380 ?? S 1:02PM 0:00.08 sshd: iNeko@pts/0 (sshd)
    mysql 1000 0.0 0.1 3624 1532 v0- I 12:23PM 0:00.02 /bin/sh /usr/local/bin/my sqld_safe –defaults-extra-file=/home/mysql/my.cnf –user=mysql –datadir=/home/mysql – -pid-file=/home/mysql/webhost.local.pid
    mysql 1133 0.0 3.3 301824 33740 v0- I 12:23PM 0:01.41 /usr/local/libexec/mysql d –defaults-extra-file=/home/mysql/my.cnf –basedir=/usr/local –datadir=/home/mysql – -log-error=/var/log/mysqld.log –pid-file=/home/mysql/webhost.local.pid
    root 1260 0.0 0.1 3344 1160 v0 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v0
    root 1261 0.0 0.1 3344 1160 v1 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v1
    root 1262 0.0 0.1 3344 1160 v2 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v2
    root 1263 0.0 0.1 3344 1160 v3 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v3
    root 1264 0.0 0.1 3344 1160 v4 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v4
    root 1265 0.0 0.1 3344 1160 v5 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v5
    root 1266 0.0 0.1 3344 1160 v6 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v6
    root 1267 0.0 0.1 3344 1160 v7 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v7
    iNeko 1344 0.0 0.2 3624 1616 0 Is 1:02PM 0:00.01 -sh (sh)
    root 1345 0.0 0.2 3804 1724 0 I 1:02PM 0:00.01 su
    root 1346 0.0 0.3 5648 2852 0 S 1:03PM 0:00.11 _su (csh)
    root 1473 0.0 0.1 3424 1152 0 R+ 1:13PM 0:00.00 ps auxww
    webhost# clear
    webhost# ps auxww
    USER PID %CPU %MEM VSZ RSS TT STAT STARTED TIME COMMAND
    root 11 200.0 0.0 0 16 ?? RL 12:23PM 101:11.85 [idle]
    root 0 0.0 0.0 0 56 ?? DLs 12:23PM 0:00.34 [kernel]
    root 1 0.0 0.0 2912 508 ?? ILs 12:23PM 0:00.01 /sbin/init —
    root 2 0.0 0.0 0 8 ?? DL 12:23PM 0:00.11 [g_event]
    root 3 0.0 0.0 0 8 ?? DL 12:23PM 0:00.11 [g_up]
    root 4 0.0 0.0 0 8 ?? DL 12:23PM 0:00.14 [g_down]
    root 5 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [xpt_thrd]
    root 6 0.0 0.0 0 8 ?? DL 12:23PM 0:00.01 [fdc0]
    root 7 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [sctp_iterator]
    root 8 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [pagedaemon]
    root 9 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [vmdaemon]
    root 10 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [audit]
    root 12 0.0 0.0 0 152 ?? WL 12:23PM 0:03.57 [intr]
    root 13 0.0 0.0 0 8 ?? DL 12:23PM 0:00.16 [yarrow]
    root 14 0.0 0.0 0 160 ?? DL 12:23PM 0:00.12 [usb]
    root 15 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [pagezero]
    root 16 0.0 0.0 0 8 ?? DL 12:23PM 0:00.01 [bufdaemon]
    root 17 0.0 0.0 0 8 ?? DL 12:23PM 0:00.05 [syncer]
    root 18 0.0 0.0 0 8 ?? DL 12:23PM 0:00.01 [vnlru]
    root 19 0.0 0.0 0 8 ?? DL 12:23PM 0:00.03 [softdepflush]
    root 20 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [flowcleaner]
    root 607 0.0 0.1 3448 1140 ?? Is 12:23PM 0:00.00 /usr/sbin/moused -p /dev/ ums0 -t auto -I /var/run/moused.ums0.pid
    root 624 0.0 0.1 1888 540 ?? Is 12:23PM 0:00.00 /sbin/devd
    root 731 0.0 0.0 0 8 ?? DL 12:23PM 0:00.00 [accounting]
    root 762 0.0 0.1 3344 1224 ?? Ss 12:23PM 0:00.01 /usr/sbin/syslogd -ss
    root 878 0.0 0.1 3404 1244 ?? Is 12:23PM 0:00.00 /usr/local/libexec/vsftpd
    root 977 0.0 0.3 4748 2684 ?? Is 12:23PM 0:00.00 nginx: master process /us r/local/sbin/nginx
    www 978 0.0 0.3 4748 3412 ?? S 12:23PM 0:00.12 nginx: worker process (ng inx)
    www 979 0.0 0.3 4748 3412 ?? S 12:23PM 0:00.12 nginx: worker process (ng inx)
    www 980 0.0 0.3 4748 3412 ?? S 12:23PM 0:00.12 nginx: worker process (ng inx)
    www 981 0.0 0.3 4748 3412 ?? I 12:23PM 0:00.00 nginx: worker process (ng inx)
    root 1141 0.0 1.3 21480 13640 ?? Ss 12:23PM 0:00.18 /usr/local/sbin/httpd
    root 1160 0.0 0.4 6676 3664 ?? Is 12:23PM 0:00.00 /usr/sbin/sshd
    www 1167 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    www 1168 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    www 1169 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    www 1170 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    www 1171 0.0 1.3 21480 13660 ?? I 12:23PM 0:00.00 /usr/local/sbin/httpd
    root 1172 0.0 0.3 6072 3336 ?? Ss 12:23PM 0:00.05 sendmail: accepting conne ctions (sendmail)
    smmsp 1176 0.0 0.3 6072 3424 ?? Is 12:23PM 0:00.00 sendmail: Queue runner@00 :30:00 for /var/spool/clientmqueue (sendmail)
    root 1182 0.0 0.1 3372 1360 ?? Is 12:23PM 0:00.01 /usr/sbin/cron -s
    root 1340 0.0 0.4 9400 4352 ?? Is 1:02PM 0:00.06 sshd: iNeko [priv] (sshd)
    iNeko 1343 0.0 0.4 9400 4380 ?? S 1:02PM 0:00.08 sshd: iNeko@pts/0 (sshd)
    mysql 1000 0.0 0.1 3624 1532 v0- I 12:23PM 0:00.02 /bin/sh /usr/local/bin/my sqld_safe –defaults-extra-file=/home/mysql/my.cnf –user=mysql –datadir=/home/mysql – -pid-file=/home/mysql/webhost.local.pid
    mysql 1133 0.0 3.3 301824 33740 v0- I 12:23PM 0:01.41 /usr/local/libexec/mysql d –defaults-extra-file=/home/mysql/my.cnf –basedir=/usr/local –datadir=/home/mysql – -log-error=/var/log/mysqld.log –pid-file=/home/mysql/webhost.local.pid
    root 1260 0.0 0.1 3344 1160 v0 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v0
    root 1261 0.0 0.1 3344 1160 v1 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v1
    root 1262 0.0 0.1 3344 1160 v2 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v2
    root 1263 0.0 0.1 3344 1160 v3 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v3
    root 1264 0.0 0.1 3344 1160 v4 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v4
    root 1265 0.0 0.1 3344 1160 v5 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v5
    root 1266 0.0 0.1 3344 1160 v6 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v6
    root 1267 0.0 0.1 3344 1160 v7 Is+ 12:23PM 0:00.00 /usr/libexec/getty Pc tty v7
    iNeko 1344 0.0 0.2 3624 1616 0 Is 1:02PM 0:00.01 -sh (sh)
    root 1345 0.0 0.2 3804 1724 0 I 1:02PM 0:00.01 su
    root 1346 0.0 0.3 5648 2852 0 S 1:03PM 0:00.11 _su (csh)
    root 1475 0.0 0.1 3424 1152 0 R+ 1:13PM 0:00.00 ps auxww

  13. iNeko
    December 22nd, 2009 at 13:44 | #13

    тока там есть разночтения
    на работе одна сеть дома другая

  14. admin
    December 22nd, 2009 at 13:55 | #14

    Собственно, получается, что у вас все нормально установилось.
    Теперь вам надо добавить домен
    /home/admin/create_domain.sh domain.com
    и создать базу:
    /home/admin/create_base.sh basename username
    И все. Можно заливать что вам нужно в /home/admin/domains/domain.com/htdocs

  15. admin
    December 22nd, 2009 at 13:57 | #15

    И настоятельно рекомендую делать сайт все-таки на базе домена, а не IP-адреса.

  16. iNeko
    December 23rd, 2009 at 23:51 | #16

    Если я их с делаю то тогда мне на каждом компьютере придёться в лмхосттс прописывать адре- хост…. так?

    Ещё как с делать чтобы пароли небыли такими старшними?
    ну или как с делатьтак чтобы вообще она спрашивала меня пароль по желанию. а то блин ну я уже 2 забыла =)

  17. admin
    December 24th, 2009 at 00:15 | #17

    Насчет паролей: можете сделать авторизацию по ключам. У меня на сайте, к сожалению, такой статьи нет (слишком тривиально =)), но в поисковиках находится легко.

    Насчет домена. У вас, как я понимаю, там какая то домашняя сеть или что-то подобное? Наверняка есть свой внутренний DNS-сервер. Вот на нем и нужно сделать резолв этого домена. Будет самое правильное решение.

  18. iNeko
    December 24th, 2009 at 00:52 | #18

    эммм по сути обычный ХР раздаёт ту много что переделать нужно пока с малго начинаю.

    И так с паролями я разабралась.
    Сейчас пробовала установить вордпресс.

    Запускаеться по сутику. Всё находиться Ну он мне пишет что надо бы сконфигурироваться
    Я говорю. давай
    пишет мол пароль базы сервер её и так далее.

    Всё это указываю нажимаю далее и…. долго думает потом пишет

    504 Gateway Time-out

    ——————————————————————————–

    nginx/0.7.64

    Я чегото не то делаю или ему надо тамаут подкрутить гдето?

  19. admin
    December 24th, 2009 at 00:55 | #19

    Пожалуйста, постарайтесь писать без ошибок – очень не удобно читать.

    По поводу “504 Gateway Time-out” смотрите лог ошибок в /var/log/httpd/

  20. iNeko
    December 24th, 2009 at 00:58 | #20

    Прошу прщнья. Волнусью =)

    В логах Пусто
    вернее всё что есть так это.
    [Wed Dec 23 01:49:11 2009] [notice] Apache configured — resuming normal operations
    [Wed Dec 23 02:12:09 2009] [notice] caught SIGTERM, shutting down
    [Wed Dec 23 05:12:58 2009] [notice] Apache configured — resuming normal operations
    [Wed Dec 23 05:45:53 2009] [notice] caught SIGTERM, shutting down
    [Thu Dec 24 02:53:42 2009] [notice] Apache configured — resuming normal operations
    [Thu Dec 24 03:00:53 2009] [notice] Graceful restart requested, doing restart
    httpd: Could not determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName
    [Thu Dec 24 03:00:53 2009] [notice] Apache configured — resuming normal operations

  21. admin
    December 24th, 2009 at 01:01 | #21

    Смотрите лог для вашего домена, а не дефолтный.
    Наподобие /var/log/httpd/domain.com-err.log

  22. iNeko
    December 24th, 2009 at 23:42 | #22

    А вы знаете? Там пусто! =)
    Я в первую очередь туда посмотрела.
    Там Нулевой размер.

    У меня есть подозрение о том, что это из за того, что у меня домен, ну сразу через несколько точек. 192.168.0.3
    Так же я не нашла логов внутри этой Вордпрессины =(

    Может можно таймаут в НГниксЕ увеличить?

  23. iNeko
    December 24th, 2009 at 23:46 | #23

    Вы извините, я наверно уже достала вас.
    Просто когда чем-то таким занимаешься, то не с кем даже пообщаться спросить.

  24. admin
    December 24th, 2009 at 23:49 | #24

    То есть вы все-таки сделали IP-адрес, а не домен как я советовал?
    Таймаут в нгинксе увеличивать не поможет.

  25. iNeko
    December 25th, 2009 at 00:00 | #25

    На данный момент у меня нет никакой ДНС в сети.
    То есть компьютер у меня, в который входит АДСЛ он же сервер он же рабочая станция.
    Там установлена XP. Знаю, что там еще, что-то делали, чтобы можно было много соединений в место 5ти делать.

    А вообще я тут у нас Бухгалтер. Что знаю, делаю сама, что-то муж помогает.
    Он в этом разбирается, но сказал, что в этом помогать не будет. Сама виновата. =)

    А Интернет просто раздается средствами windows. Соответственно, при работе на прямой IP всё соединяется без прописи в хост-с.
    Ну не «гуглица» у меня решение на данный момент к подобной ситуации.

  26. admin
    December 25th, 2009 at 00:19 | #26

    Если у вас там всего один компьютер тогда просто пропишите домен в hosts на Windows и на FreeBSD и добавьте его скриптом в конфигурацию Apache.
    Самое простое решение.

  27. iNeko
    January 7th, 2010 at 04:41 | #27

    А теперь вопрос =)
    Как удалять та? =)

  28. admin
    January 7th, 2010 at 12:44 | #28

    Что именно удалять?
    Как работать с портами во FreeBSD

  29. iNeko
    January 8th, 2010 at 06:12 | #29

    извеяюсь.
    Я была немного под шафэ.
    хотя и сейчас немного =)
    Как у далять домен и базу с пользователем?

  30. admin
    January 8th, 2010 at 12:00 | #30

    Пьяный админ – опасное дело =)
    Удалять базу: drop database basename;
    Удалить конфиг виртуалхоста из /usr/local/etc/apache/vhosts
    Удалить папку из /home/admin/domains

  31. ПЫЩЬ
    October 7th, 2010 at 11:39 | #31

    вот это: echo “1 1 * * * root ntpdate pool.ntp.org” >> /etc/crontab
    я бы заменил на ntpd.
    p.s. полностью скрипт не читал.

  32. admin
    October 7th, 2010 at 11:44 | #32

    А почему? Имхо, ntpd, являясь самостоятельным демоном имеет основную цель – раздавать точное время машинам в локалке. И его еще нужно настраивать. Нам же в данном случае это не нужно. Я за то чтобы использовать максимально простые решения.

  33. kolianus
    December 17th, 2010 at 15:14 | #33

    Изучил ваш скрипт и своял небольшое дополнения для организации хостинга, просьба строго не судить.

    #!/bin/sh

    echo “Скрипт создания пользователя, домена, ftp доступа и базы MYSQL для хостинга”
    SQLROOTPASS=(задать)

    os=`uname -a |grep -c FreeBSD`
    if [ $os = “0” ]; then
    echo “Этот скрипт работает только на FreeBSD. Выход.”
    exit
    fi

    echo “Введите имя пользователя для создания (По умолчанию, test):”
    read USER

    if [ -z $USER ]; then
    USER=test
    fi

    echo “Введите имя домена для создания (По умолчанию, $USER):”
    read DOMAIN

    if [ -z $DOMAIN ]; then
    DOMAIN=$USER
    fi

    echo “Введите имя пользователя MYSQL для создания (По умолчанию, $USER):”
    read MYSQLUSER

    if [ -z $MYSQLUSER ]; then
    MYSQLUSER=$USER
    fi

    echo “Введите имя базы MYSQL для создания (По умолчанию, $USER):”
    read MYSQLDB

    if [ -z $MYSQLDB ]; then
    MYSQLDB=$USER
    fi

    USERPASS=`< /dev/urandom tr -dc A-Za-z0-9 | head -c15`
    SQLPASS=` “$VHOSTS/$DOMAIN.conf.tmp1”
    sed -e “s/username/$USR/g” “$VHOSTS/$DOMAIN.conf.tmp1” > “$VHOSTS/$DOMAIN.conf.tmp2”
    sed -e “s/IPADDR/127.0.0.1/g” “$VHOSTS/$DOMAIN.conf.tmp2” > “$VHOSTS/$DOMAIN.conf”

    rm -f $VHOSTS/$DOMAIN.conf.tmp1
    rm -f $VHOSTS/$DOMAIN.conf.tmp2

    echo “Перезагрузка Apache”
    /usr/local/etc/rc.d/apache22 reload

    echo “Создание домена завершено успешно”

    echo “Создание базы данных”

    baseexist=`echo “show databases”|mysql –password=$SQLROOTPASS |grep -c $MYSQLUSER”`

    if [ $baseexist != “0” ]; then
    echo “База данных $MYSQLUSER уже существует! Установка отменена.”
    exit
    fi

    echo “create database $MYSQLUSER;” | mysql –password=$SQLROOTPASS
    echo “GRANT ALL PRIVILEGES ON $MYSQLUSER.* TO $MYSQLDB@’localhost’ IDENTIFIED BY ‘$SQLPASS’;” | mysql –password=$SQLROOTPASS
    echo “flush privileges;” | mysql –password=$SQLROOTPASS

    echo “Создание базы данных завершено успешно”

    echo “##############################”
    echo “Установка завершена!”
    echo “FTP пользователь: $USER”
    echo “FTP пароль: $USERPASS”
    echo “Домен: $DOMAIN”
    echo “База MySQL: $MYSQLUSER”
    echo “Пользователь MySQL: $MYSQLDB”
    echo “Пароль MySQL: $SQLPASS”
    echo “##############################”

    echo ‘############################## ‘ > ~/setup.log
    echo ‘Установка завершена!’ >> ~/setup.log
    echo ‘FTP пользователь: $USER’ >> ~/setup.log
    echo ‘FTP пароль: $USERPASS’ >> ~/setup.log
    echo ‘Домен: $DOMAIN’ >> ~/setup.log
    echo ‘База MySQL: $MYSQLUSER’ >> ~/setup.log
    echo ‘Пользователь MySQL: $MYSQLDB”‘ >> ~/setup.log
    echo ‘Пароль MySQL: $SQLPASS’ >> ~/setup.log
    echo ‘##############################’ >> ~/setup.log

  34. admin
    December 17th, 2010 at 16:59 | #34

    Отличное дополнение!
    Правда тут в комментариях в вордпрессе проблемы с кавычками. Возможно будет лучше если вы выложите его где-нибудь для скачивания.

  35. kolianus
    December 18th, 2010 at 21:08 | #35

    Переделал сам скрипт автоматической установки под apache 22, немного адаптировал и сделал более информативным.
    http://files.jelezyakin.ru/config/web-host-setup.sh
    Так же изменил представленный скрипт
    http://files.jelezyakin.ru/config/freebsd/setup_user.sh

    В скриптах есть все комментарии. Строго не судить, возможно что то не углядел и может не сработать

  36. admin
    December 19th, 2010 at 05:53 | #36

    @kolianus
    Наверное желательно автоматически определять какой апач установлен.

  37. kolianus
    December 19th, 2010 at 11:50 | #37

    Адаптация именно с установкой apache22, у меня не было необходимости ставить другую версию, поэтому все делал именно под apache22. Скрипт не раз тестировал ставил на голую систему. Если будет желание и время добавлю установку почтовика, антивируса и еще чего нибудь например переброс портов или фаервол.
    Если будет необходимо, то сделаю меню выбора

  38. September 5th, 2011 at 17:05 | #38

    Будте добры перезалейте скриптик @kolianus

  39. kolianus
    October 12th, 2011 at 13:05 | #39

    могу выложить но позже пока тестирую то ли сохранилось

  40. kolianus
    October 13th, 2011 at 09:40 | #40
  41. kolianus
    October 17th, 2011 at 06:31 | #41

    Упростил себе и вам работу.
    Достаточно будет создать любой исполняемый файл с таким содержанием:

    #!/bin/sh

    confighost=jelezyakin.ru
    cd ~/
    fetch http://$confighost/config/setup.sh
    chmod +x ~/setup.sh
    sh ~/setup.sh

    и запустить, дальше установка пройдет в автоматическом режиме.
    Перед всеми манипуляциями рекомендую сделать следующие:
    Поменять значения на
    /etc/login.conf:
    russian|Russian Users Accounts:\
    :charset=UTF-8:\
    :lang=ru_RU.UTF-8:\
    :tc=default:

    cap_mkdb /etc/login.conf
    pw usermod -n root -L russian

    мне по душе UTF-8, да и конвертировать кодировки мне было лень )))

  42. Dimidik
    November 10th, 2012 at 12:05 | #42

    Здравствуйте) а есть скрипты на скачивание которые вылаживал “kolianus” что бы там все автоматом установилось веб хостинг поднялся)) ?

  1. No trackbacks yet.