URL: https://www.opennet.me/cgi-bin/openforum/vsluhboard.cgi
Форум: vsluhforumID1
Нить номер: 35312
[ Назад ]

Исходное сообщение
"Помогите установить Apache 1.3.28 + PHP + MySQL"

Отправлено Line , 29-Сен-03 19:56 
Помогите пожалуйста установить Apache 1.3.28 + PHP + MySQL.

Желательно набор подробных комманд.


Содержание

Сообщения в этом обсуждении
"Помогите установить Apache 1.3.28 + PHP + MySQL"
Отправлено Rabid , 29-Сен-03 23:30 
>Помогите пожалуйста установить Apache 1.3.28 + PHP + MySQL.
>
>Желательно набор подробных комманд.

Ты хоть систему скажи.


"Помогите установить Apache 1.3.28 + PHP + MySQL"
Отправлено Line , 30-Сен-03 08:21 
>>Помогите пожалуйста установить Apache 1.3.28 + PHP + MySQL.
>>
>>Желательно набор подробных комманд.
>
>Ты хоть систему скажи.


FreeBSD 4.7
Apache 1.3.28
PHP 4.x.x
MySQL 4.x.x


"Помогите установить Apache 1.3.28 + PHP + MySQL"
Отправлено vmak , 30-Сен-03 09:26 

Установка и настройка Apache + Php + MySql на FreeBSD

способ быстрой инсталляции и настройки наиболее простого и часто используемого набора:

HTTP-сервер Apache, Интерпретатор php4, СУБД - MySql;

Пример конфигурации и установки для FreeBSD.


Необходимые пояснения:

Все пути относительны (вы можете выбрать и другие) а версии программ актуальны на момент написания статьи, если вы используете другие версии или устанавливаете программы по другим директориям, то будьте внимательны и корректируйте соответствующие команды и директивы.

Перед инсталляцией желательно проверить наличие (а если нет то установить) gcc, gmake, Perl5, p5-DBI p5-Mysql - все это можно установить из Packages или через ports (если есть выход в инет)


В первую очередь необходимо скачать исходные файлы (или где нибудь взять):

Apache-v 1.3.12

MySQL-v 3.22.32

PHP- v 4.0


Создадим временную директорию

shell> mkdir /var/src/distfiles


cкопируем туда полученные файлы

shell> cp apache_1.3.12.tar.gz /var/src/distfiles

shell> cp mysql-3.22.32.tar.gz /var/src/distfiles

shell> cp php-4.0.0.tar.gz /var/src/distfiled


разархивируем все эти файлы

shell> tar -xzvf apache_1.3.12.tar.gz

shell> tar -xzvf mysql-3.22.32.tar.gz

shell> tar -xzvf php-4.0.0.tar.gz


В первую очередь установим MySql

Перейдем в каталог

shell>cd /var/src/distfiles/mysql-3.22.32


Далее запустим скрипт конфигурации

shell> ./configure  --with-charset=koi8_ru --prefix=/usr/local/mysql


ну и компильнем

shell> ./make && make install


если все нормально, тогда идем далее

shell> ./script/mysql_install_db


Проверим директоию /usr/local/etc/rc.d

В ней должен получиться файлик mysql-server.sh

Примерно следующего содержания


#!/bin/sh

#

if [ -x /usr/local/bin/safe_mysqld ]

then

/usr/local/bin/safe_mysqld -user=mysql > /dev/null & && echo - n 'mysql'

fi


Перегрузимся

shell> reboot


После перезагрузки проверьте присутствует ли процесс в памяти


shell> ps -a|grep mysql


После этого сделаем проверочку

shell> mysqlshow

Должно появиться что-то типа

+---------------+

| Databases     |

+---------------+

|mysql          |

|test           |  

+---------------+


Установка сервера MySQL (операционная система Unix FreeBSD-2.2.7). Копируем с http://www.mysql.com/ файл mysql-3_22_32_tar.gz. Далее выполняем команды:

$ gunzip mysql-3_22_32_tar.gz

$ tar xvf mysql-3_22_32_tar

$ cd mysql-3.22.32

$ ./configure –with-mit-threads

$ make

$ make install

$ scripts/mysql_install_db

Запускаем сервер mysql:

$ /usr/local/bin/safe_mysqld &

Меняем пароль например на “123456”

$ /usr/local/bin/mysqladmin –u root password ‘123456’

Рассмотрим пример создания двух пользователей. Однако работать будем с последним. Первый – alex, который может получить доступ к серверу MySQL, установленному на машине cel.tup, только с клиентской машины ikc1.tup. Он должен иметь привилегии на выборку, внесение изменений в базу данных ism. Второй пользователь – admin, имеющий доступ к серверу MySQL (host - cel.tup) также только с машины ikc1.tup, но все возможные привилегии при работе со всеми базами данных.

Для предоставления прав доступа СУБД MySQL имеет специальную базу данных mysql с тремя таблицами. Поскольку для создания вышеупомянутых пользователей потребуется только две таблицы, распечатаем их содержимое с помощью команды mysqlshow:

$ mysqlshow -u root -p mysql user

Enter password:

Database: mysql  Table: user  Rows: 6

+-----------------+---------------+------+-----+---------+-------+

| Field           | Type          | Null | Key | Default | Extra |

+-----------------+---------------+------+-----+---------+-------+

| Host            | char(60)      |      | PRI |         |       |

| User            | char(16)      |      | PRI |         |       |

| Password        | char(16)      |      |     |         |       |

| Select_priv     | enum('N','Y') |      |     | N       |       |

| Insert_priv     | enum('N','Y') |      |     | N       |       |

| Update_priv     | enum('N','Y') |      |     | N       |       |

| Delete_priv     | enum('N','Y') |      |     | N       |       |

| Create_priv     | enum('N','Y') |      |     | N       |       |

| Drop_priv       | enum('N','Y') |      |     | N       |       |

| Reload_priv     | enum('N','Y') |      |     | N       |       |

| Shutdown_priv   | enum('N','Y') |      |     | N       |       |

| Process_priv    | enum('N','Y') |      |     | N       |       |

| File_priv       | enum('N','Y') |      |     | N       |       |

| Grant_priv      | enum('N','Y') |      |     | N       |       |

| References_priv | enum('N','Y') |      |     | N       |       |

| Index_priv      | enum('N','Y') |      |     | N       |       |

| Alter_priv      | enum('N','Y') |      |     | N       |       |

+-----------------+---------------+------+-----+---------+-------+

$ mysqlshow -u root -p mysql db

Enter password:

Database: mysql  Table: db  Rows: 2

+-----------------+---------------+------+-----+---------+-------+

| Field           | Type          | Null | Key | Default | Extra |

+-----------------+---------------+------+-----+---------+-------+

| Host            | char(60)      |      | PRI |         |       |

| Db              | char(32)      |      | PRI |         |       |

| User            | char(16)      |      | PRI |         |       |

| Select_priv     | enum('N','Y') |      |     | N       |       |

| Insert_priv     | enum('N','Y') |      |     | N       |       |

| Update_priv     | enum('N','Y') |      |     | N       |       |

| Delete_priv     | enum('N','Y') |      |     | N       |       |

| Create_priv     | enum('N','Y') |      |     | N       |       |

| Drop_priv       | enum('N','Y') |      |     | N       |       |

| Grant_priv      | enum('N','Y') |      |     | N       |       |

| References_priv | enum('N','Y') |      |     | N       |       |

| Index_priv      | enum('N','Y') |      |     | N       |       |

| Alter_priv      | enum('N','Y') |      |     | N       |       |

+-----------------+---------------+------+-----+---------+-------+

Для добавления пользователей введем команды:

> mysql -u root -p

Enter password:

mysql> use mysql;

mysql> insert into user values ('ikc1.tup','alex',password('alex317'),

    -> 'n','n','n','n','n','n','n','n','n','n','n','n','n','n');

mysql> insert into user values ('ikc1.tup','admin',password('admin317'),

    -> 'y','y','y','y','y','y','y','y','y','y','y','y','y','y');

mysql> insert into db values ('ikc1.tup','ism','alex',

    -> 'y','y','n','n','n','n','n','n','n','n');

mysql> quit

После внесенных изменений в базу данных прав пользователей необходимо перегрузить сервер MySQL:

$  mysqladmin -u root -p reload

Enter password:

$

В качестве примера рассмотрим создание простой базы данных в которой содержатся записи  с информацией о сотрудниках университета. Ввод в базу данных, ее корректировка должны проводиться с компьютера клиента через формы броузера, например Netscape Communicator.

Создаем базу данных ism и таблицу в ней teacher:

$ mysql -u root -p

Enter password:

Welcome to the MySQL monitor.  Commands end with ; or \g.

Your MySQL connection id is 4 to server version: 3.22.32


Type 'help' for help.

mysql> create database ism;

Query OK, 1 row affected (0.04 sec)

mysql> use ism1;

Database changed

mysql> create table teacher (user_name VARCHAR(25), phone VARCHAR(10),

    -> job BLOB, img VARCHAR(20));

Query OK, 0 rows affected (0.02 sec)

mysql> quit

Bye

$

Ниже приведен файл index.html который формирует меню режимов работы с базой данных:

<html><head><title>Menu</title></head><body>

<b><a href="../~alex/form1.html">1.Добавить запись в базу данных </a><br>

<a href="../~alex/form2.html">2.Найти запись по Ф.И.О. </a><br>

<a href="../~alex/form3.html">3.Удалить запись </a><br>

<a href="../~alex/form4.html">4.Отредактировать запись </a></b>

</body></html>

Для каждого из представленных здесь пунктов меню должны быть созданы формы на языке html, обеспечивающих передачу данных web-серверу посредством скриптов, написанных на PHP.

Первая форма и скрипт предназначены для добавления записей в базу данных сервера MySQL.

Файл form1.html:

<html><head><title>form1</title><body>

<form method=post action="form1.php"><br><b>Введите Ваше имя:</b>

<br><input name="user_name" value="" size=30>

<br><br><b>Введите номер Вашего телефона:</b> <br><input name="phone" value="" size=10>

<br><br><b>Введите краткую характеристику:

<br><TEXTAREA NAME="job" ROWS=10 COLS=40></TEXTAREA>

<br><br><b>Введите имя фото лат.буквами:</b>

<br><input name="img" value="nofoto.jpg" size=20>

<br><br><input type="submit" value="Зарегистрировать">

</form></body></html>

Файл form1.php:

<?

/* Определяем значения переменным */

$hostname="cel.tup"; $username="alex"; $password="alex317";

/* Имя базы данных */

$dbName="ism";

/* Таблица MySQL */

$usertable="teacher";

/* Создать соединение */

MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу подсоединиться");

/* Выбор БД */

MYSQL_SELECT_DB($dbName) or die("Не могу выбрать БД");

/* Введение информации в БД */

$query="INSERT INTO $usertable VALUES ('$user_name','$phone','$job','$img')";

$result=MYSQL_QUERY($query);

/* Закрыть соединение */

MYSQL_CLOSE();

print "Запись введена в БД! <br>";  print "<a href='../~alex'>Назад в меню</a>";

?>

Необходимо заметить, что в базе данных ism хранятся только имена фотографий сотрудников, сами фотографии находятся в подкаталоге pics.

Вторая форма и скрипт предназначены для выборки записей из базы данных сервера MySQL.

Файл form2.html:

<html><head><title>Выборка данных</title>

<body><form action="form2.php" method="post"><b>Введите Ф.И.О.<b>

<input type="text" name="user_name" size=30><input type="submit" value="Ввести!">

</form></body></html>

Файл form2.php:

<?php

$hostname="cel.tup"; $username="admin"; $password="admin317"; $dbName="ism";

$usertable="teacher";

mysql_connect($hostname,$username,$password) or die("No connect");

mysql_select_db("$dbName") or die("No select DB");

/* Выбрать сотрудников, имена которых начинаются на $user_name */

$query="select * from teacher where user_name like '$user_name%'";

$result=mysql_query($query);

/* Сколько нашлось таких сотрудников? */

$number=mysql_numrows($result);

/* Распечатка выбранных сотрудников */

$i=0;

if ($number == 0)

{ print "Нет данных о $user_name в БД <br>"; }

elseif ($number > 0)

{

while ($i < $number)

{

/* Присвоение переменным значений полей user_name, phone, job, img для i-й строки */

$user_name=mysql_result($result,$i,"user_name");

$phone=mysql_result($result,$i,"phone");

$job=mysql_result($result,$i,"job");

$img=mysql_result($result,$i,"img");

/* Вывод фотографии i-го сотрудника  высотой 130 пикселей */

print "<br><img src='pics/$img' height=130><br>";

/* Вывод Ф.И.О. i-го сотрудника */

print "<u> Ф.И.О.:</u> <br>";

print "$user_name <br><br>";

/* Вывод телефона i-го сотрудника */

print "<u> Телефон: </u><br>";

print "$phone <br><br>";

/* Вывод краткой характеристики i-го сотрудника */

print "<u> Характеристика: </u><br>";

print "$job <br>";

$i++;

print "<hr>";

}

}

print "<a href='../~alex'>Назад в меню</a>";

?>

Третья форма и скрипт предназначены для  удаления записей из базы данных сервера MySQL.

Файл form3.html:

<html><head><title>Выборка данных</title><body>

<form action="form3.php" method="post"><b>Введите Ф.И.О. для удаления:<b>

<input type="text" name="user_name" size=30><input type="submit" value="Ввести!">

</form></body></html>

Файл form3.php:

<?php

$hostname="cel.tup"; $username="admin"; $password="admin317"; $dbName="ism";

$usertable="teacher";

mysql_connect($hostname,$username,$password) or die("No connect");

mysql_select_db("$dbName") or die("No select DB");

/* Удаление записи для поля user_name */

$query="delete from $usertable where user_name='$user_name'";

$result=mysql_query($query);

print "Запись удалена <br>";

print "<a href='../~alex'>Назад в меню</a>";

?>


Четвертая форма и скрипт предназначены для  редактирования записей в базе данных сервера MySQL.

Файл form4.html:

<html><head><title>Корректировка данных</title><body>

<form action="form4.php" method="post">

<b>Введите Ф.И.О., данные для которой необходимо изменить:<b>

<br><input type="text" name="user_name" size=30><input type="submit" value="Ввести!">

</form></body></html>

Файл form4.php:

<?php

$hostname="cel.tup"; $username="admin"; $password="admin317"; $dbName="ism"; $usertable="teacher";

mysql_connect($hostname,$username,$password) or die("No connect");

mysql_select_db("$dbName") or die("No select DB");

/* Выбор записей по полю user_name */

$query="select * from $usertable where user_name='$user_name'";

$result=mysql_query($query);

/* Определение существованя выбранных записей */

$number=mysql_numrows($result);

if ($number==0)

{

print "Нет такой записи!<br>";

print "<a href='../~alex'>Назад в меню</a>";

}

/* Если запись выбрана из базы данных, вывести все ее поля в форму для редактирования */

/* И удалить выбранную запись */

else

{

/* Присвоение переменным значений полей для выбранной записи */

$phone=mysql_result($result,0,"phone");

$job=mysql_result($result,0,"job");

$img=mysql_result($result,0,"img");

print "<img src='pics/$img' height=130><br>";

/* Удаление записи */

$query="delete from $usertable where user_name='$user_name'";

$result=mysql_query($query);

/* Создание формы для редактирования */

print "<form method=post action='form5.php'>";

print "<br><b>Введите Ваше имя:</b>";

print "<br><input name='user_name' value='$user_name' size=30>";

print "<br><br><b>Введите номер Вашего телефона:</b>";

print "<br><input name='phone' value='$phone' size=10>";

print "<br><br><b>Введите краткую характеристику:";

print "<br><TEXTAREA NAME='job' ROWS=10 COLS=40>$job</TEXTAREA>";

print "<br><br><b>Введите имя фото лат.буквами:</b>";

print "<br><input name='img' value='$img' size=20>";

print "<br><br><input type='submit' value='Зарегистрировать'>";

print "</form>";

}

?>

Файл form5.php. Предназначен для ввода в базу данных в форме отредактированной записи.

<?

/* Определяем значения переменным */

$hostname="cel.tup"; $username="admin"; $password="admin317";

/* Имя базы данных */

$dbName="ism";

/* Таблица MySQL */

$usertable="teacher";

/* Создать соединение */

MYSQL_CONNECT($hostname,$username,$password) OR DIE("Не могу подсоединиться");

/* Выбор БД */

MYSQL_SELECT_DB($dbName) or die("Не могу выбрать БД");

/* Введение информации в БД */

$query="INSERT INTO $usertable VALUES ('$user_name','$phone','$job','$img')";

$result=MYSQL_QUERY($query);

/* Закрыть соединение */

MYSQL_CLOSE();

print "Запись введена в БД! <br>"; print "<a href='../~alex'>Назад в меню</a>";

?>

Рассмотренный здесь подход для создания и работы с простейшей базой данных применим и для построения достаточно сложных баз данных, содержащих большое количество полей и условий выборки по ним. Например, задачи о учете, перемещении кадров на крупных предприятиях, имеющих филиалы. Для таких задач размеры приведенных здесь программ увеличаться из-за необходимости обработки большого количества полей, введения логических условий при выборке данных, организации форматированного вывода.